ASP.NET MVC3模板页的使用(2)_实用技巧

本文为大家演示下MVC3中怎样使用模板页,在传统的webform设计模式中,我们使用masterpage作为模板页,在MVC3 razor视图设计中,我们使用另一种方式作为模板页。

新建一个MVC3项目,在解决方案资源管理中,我们可以看到VIEWS文件夹下面有一个Shared文件夹。在Shared文件夹里面有一个_Layout.cshtml页面。这个就是项目中默认的模板页面。如下图所示 :

       

1.新建内容页
        内容页在MVC3中也叫做视图布局页,可以右键选中视图文件夹,通过添加视图来添加内容页,然后选择相应的模板。下面就是我们创建的内容页ViewPageOne.cshtml

       使用模板页的页面,会自动在页面中生成代码。来指定模板页,使用Layout来指定具体的模板页。如果内容页中没有Layout属性,则使用的是默认的模板页

@{
 ViewBag.Title = "ViewPageOne";
 Layout = "~/Views/Shared/_Layout.cshtml";
} 

<h2>ViewPageOne</h2> 

如果Layout指定为null,则表示不使用模板页

@{
 ViewBag.Title = "ViewPageOne";
 Layout = null;
} 

 2.新建模板页

      右键选择Shared文件,然后在菜单中选择添加 新建项,弹出添加新项对话框,然后选择MVC3布局页,这样就添加完成了布局页,下面的我们添加的布局页_LayoutPageOne.cshtml

    

3.为某个文件单独指定模板页
     假如某个页面不想使用默认的模板页,可以单独为其指定模板页,下面的代码把内容页的模板页指定为刚创建的模板页_LayoutPageOne.cshtml

@{
 ViewBag.Title = "ViewPageOne";
 Layout="~/Views/Shared/_LayoutPageOne.cshtml";
}
<h2>ViewPageOne</h2> 

4.为某个视图文件夹指定模板页
      假如想让一个Controller下面的所有视图使用同一个模板文件,可以在该Controller对应的试图文件夹下面创建一个_ViewStart.cshtml文件,然后在_ViewStart.cshtml里面指定所使用的模板页

@{
 Layout = "~/Views/Shared/_LayoutPageOne.cshtml";
}

这样就可以把一个controller下面的视图指定为使用一个模板文件

5.页面不使用模板页
     如果一个内容页面不想使用模板页,可以把_Layout设置为null
     也可以在添加视图页面的时候不选择模板。
 
6.@RenderBody()
    @RenderBody()在模板页中使用表示内容页在模板中的位置。当创建具有模板页的内容页的时候,内容页就呈现在模板页中@RenderBody()所在的位置,一个模板页中只能有一个@RenderBody().
 
7.@RenderSection
  @RenderSection用于在模板布局中定义一个区域,在内容页可以定义一些内容来填充这个区域,例如内容页中引用的JS文件,可以填充到模板页的section位置。每个内容页的单独一些信息,可以在模板页中这个区域显示。
  @RenderSection有两个参数,第一个参数用于定义section的名称,第2个参数是布尔类型,如果为TRUE,表示内容页必须定义这个section,如果为false,则表示内容页可定义section,也可以不定义。

模板页:

<!DOCTYPE html> 

<html>
<head>
 <title>欢迎 @ViewBag.Title</title>
</head>
<body>
 <p>第2个模板页</p>
 <div>
  @RenderBody()
 </div>
  <div>
   备注:
   @RenderSection("Remark", false);
  </div>
</body>
</html> 

内容页:

@{
 ViewBag.Title = "主页";
} 

<h2>@ViewBag.Message</h2>
<p>
 若要了解有关 ASP.NET MVC 的更多信息,请访问 <a href="http://asp.net/mvc" title="ASP.NET MVC 网站">http://asp.net/mvc</a>。
</p>
@section Remark
{
 我是主页
 }
<p>欢迎</p>

8.@RenderPage
  @RenderPage用于表示在一个页面中呈现另一个页面的内容.参数指定要呈现的网页的位置。
  我们在Shared文件夹下面新建一个footer.cshtml文件,然后里面写上版权信息,然后在模板页中开辟一块位置用来呈现footer页面。

<!DOCTYPE html> 

<html>
<head>
 <title>欢迎 @ViewBag.Title</title>
</head>
<body>
 <p>第2个模板页</p>
 <div>
  @RenderBody()
 </div>
  <div>
   备注:
   @RenderSection("Remark", false);
  </div>
 <footer> 

  @RenderPage("~/Views/Shared/footer.cshtml")
 </footer>
</body>
</html>

 9.@Html.Partial()与Html.RenderPartial()
   .@Html.Partial()与Html.RenderPartial()这两个方法可以用来输出一个分部页,右键添加新建项,选择MVC3分部页,就可以添加一个分部页,相当于一个用户控件,
这时候就可以使用者两个方法来输出分部页的内容,当然,这两个方法也可以直接输出视图页和内容页。
   @Html.Partial()的参数为用户控件名称,也就是分部页名称,返回值为string类型,可以直接输出。
   @Html.RenderPartial()的参数也为用户控件名称,返回值为VOID,调用的时候直接把内容输出到Response中。
  用法如下:

<div id="logindisplay">
    @Html.Partial("_PartialLogin")
    @{
     Html.RenderPartial("_PartialLogin");
     } 

   </div> 

以上就是ASP.NET MVC3模板页的使用方法

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ASP.NET.MVC3
如何使用模板
,以便于您获取更多的相关知识。

时间: 2024-08-03 14:43:20

ASP.NET MVC3模板页的使用(2)_实用技巧的相关文章

asp.net mvc3.0安装失败如何解决_实用技巧

先来看看安装失败的截图 原因分析 因为vs10先安装了sp1补丁,然后安装的mvc3.0,某些文件被sp1补丁更改,导致"VS10-KB2483190-x86.exe"安装不了,造成安装失败. 解决方案 方法1: 解压mvc安装包(AspNetMVC3Setup.exe)找到parameterinfo.xml文件,删除里面"<Exe CanonicalTargetName="VS10-KB2483190-x86".....</Exe>&q

asp.net使用jquery模板引擎jtemplates呈现表格_实用技巧

在Asp.net MVC 中,使得我们能够更加自由控制我们所想显示HTML.通常情况下,都要做一下数据列表.那么我们可以手动去拼一个表格出来,但这样有时对于复杂的表格说,那就JS代码比较复杂了.我们可以借助JS下的模板引擎,来实现这一功能.下面要介绍就是JTemplates,它也是基于Jquery的. 复制代码 代码如下: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %><!D

asp+javascript实现404页的处理转换_应用技巧

主要是给用户的友好性,原来用户是依靠搜索引擎进入我每篇文章的,怎么能让用户让一个旧的页面跳转到新的页面,且文章不变,如:    程序代码   http://www.jb51.net/blog/article.asp?id=381  //旧网址   进入之后自动跳转到   http://www.jb51.net/article.asp?id=381   这就需要new321服务器的404页来处理了,代码如下:    程序代码   <%    url=Request.ServerVariables(

asp.net基础学习之前端页面布局_实用技巧

前端就是给人看的界面,后台人员不仅要知道后台代码的编写,更要知道前端的布局.有时候要比前端人员知道的还要多,因为有可能前端人员是个21天精通ps的大师级人物.这时候你可以自己写前端. 1.CSS •CSS(Cascading Style Sheet),中文译为层叠样式表,是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言.就语法而言, •CSS是一种容易学习的语言.它的"语法"仅由几个概念组成,使得它相当容易入门.CSS的难点在于所有主流浏览器呈现页面的方式.尽管实际上每

ASP.NET MVC分页和排序功能实现_实用技巧

分页和排序,应该是软件开发中,需要必知必会的技能了,对于分页,网上很多教程,当然,别人终究是别人的,只有自己理解,会了,并且吸收之后,再用自己的语言,传授出来,这才是硬道理.好了,废话说多了.现在我们进入正题:  这里,我打算使用EF Code-First方式分页控件就是用PagedList.MVC,来做分页,对于排序,实现的思路是,加载数据出来之后,默认是升序排序,然后我们点击一下相应的列标题,就按照该字段降序排序,查数据.思路明确了,就开始干吧!  1.首先新建一个空白的MVC项目,在Mod

关于ASP.NET页面打印技术的常用方法总结_实用技巧

B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 • 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. • 2.服务

ASP.NET 2.0 中的创建母版页_实用技巧

虽然母版页和内容页功能强大,但是其创建和应用过程并不复杂.本节和下一节将以创建如图1所示示例为例,向读者详细介绍,使用Visual Stuido 2005创建母版页和内容页的方法以及相关知识.本节的重点是创建母版页的方法. 母版页中包含的是页面公共部分,即网页模板.因此,在创建示例之前,必须判断哪些内容是页面公共部分,这就需要从分析页面结构开始.图1所示显示的是一个页面截图.在下文中,暂称该页面名为Index.aspx,并且假设其为某网站中的一页.通过分析可知,该页面的结构如图5所示. 图5 页

ASP.Net开发常见的一些问题总结_实用技巧

1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 接收参数: string a  = Request.QueryString("id");string b  = Request.QueryS

asp.net Repeater分页实例(PageDataSource的使用)_实用技巧

Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据. 实现DataList或Repeater控件的分页显示有几种方法: 1.写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable) 2.使用PagedDataSource类(位