I:回忆MVC2当中MasterPage那些事
大家先看下面的代码:
- <!------------Begin-------------->
- <!-- Master文件 -->
- <%@ Master Language="C#"
- Inherits="System.Web.Mvc.ViewMasterPage" %>
- Master head
- <asp:ContentPlaceHolder ID="MainContent" runat="server" />
- Master1...
- <asp:ContentPlaceHolder ID="OtherContent" runat="server" />
- Master2...
- <asp:ContentPlaceHolder ID="AnyContent" runat="server" />
- Master3...
- <!-------------End--------------->
- <!------------Begin-------------->
- <!-- 某个View文件 -->
- <%@ Page Language="C#"
- MasterPageFile="~/Views/Shared/Site.Master"
- Inherits="System.Web.Mvc.ViewPage" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
- MainContent...
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="OtherContent" runat="server">
- OtherContent...
- </asp:Content>
- <asp:Content ID="Content3" ContentPlaceHolderID="AnyContent" runat="server">
- AnyContent...
- </asp:Content>
- <!-------------End--------------->
- <!------------Begin-------------->
- <!-- 最后传回给客户端的文件 -->
- Master head
- MainContent...
- Master1...
- OtherContent...
- Master2...
- AnyContent...
- Master3...
- <!-------------End--------------->
我们可以看到在Master中ContentPlaceHolder服务端控件起到了一个占位符的作用.最后输出的,其实是在View当中的Content服务端控件内的内容,接下来开始介绍Layout.
II:ASP.NET MVC3 新的Layout布局系统
在MVC3当中我们可以利用新的Layout布局系统来代替掉原来在MVC2当中使用的MasterPage(当然在MVC3当中,如果你是继续使用ASPX视图引擎的话,那么还是可以用回原来的MasterPage,然后~~~~然后~你会和runat=”server”保持着从.NET 1.x到.NET 4.0以来从没有间断过的合作关系,可谓缘分呀!).
我们在VS2010 MVC3项目中创建Item时,从创建向导中可以看到以下新增的几个Item
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' title="image" border="0" alt="image" src="/uploadfile/201301/6/A3184941309.png" />
下面进行逐一介绍:
Layout页:
该家伙其实就相当于原来的Master文件.为站点的统一主题界面和减少大部分冗余的Html,head,body标记曾作出过很大的贡献.可谓是功不可莫啊!MasterPage他的诞生是在.NET 2.0版本!在服役到.NET4.0版本后出现了一个新成员[Layout]去向他挑战.MasterPage能否经得起新成员的挑战呢?这个还是得留各位观众做详细对比吧!
Partial页:
相当于原来的UserControl.它可以为你减轻不少需要重复劳动的时间!
View页:
就