本文为大家演示下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";

}

ViewPageOne

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

@{

ViewBag.Title = "ViewPageOne";

Layout = null;

}

2.新建模板页

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

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

@{

ViewBag.Title = "ViewPageOne";

Layout="~/Views/Shared/_LayoutPageOne.cshtml";

}

ViewPageOne

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,也可以不定义。

模板页:

欢迎 @ViewBag.Title

第2个模板页

@RenderBody()

备注:

@RenderSection("Remark", false);

内容页:

@{

ViewBag.Title = "主页";

}

@ViewBag.Message

若要了解有关 ASP.NET MVC 的更多信息,请访问 http://asp.net/mvc。

@section Remark

{

我是主页

}

欢迎

8.@RenderPage

@RenderPage用于表示在一个页面中呈现另一个页面的内容.参数指定要呈现的网页的位置。

我们在Shared文件夹下面新建一个footer.cshtml文件,然后里面写上版权信息,然后在模板页中开辟一块位置用来呈现footer页面。

欢迎 @ViewBag.Title

第2个模板页

@RenderBody()

备注:

@RenderSection("Remark", false);

@RenderPage("~/Views/Shared/footer.cshtml")

9.@Html.Partial()与Html.RenderPartial()

.@Html.Partial()与Html.RenderPartial()这两个方法可以用来输出一个分部页,右键添加新建项,选择MVC3分部页,就可以添加一个分部页,相当于一个用户控件,

这时候就可以使用者两个方法来输出分部页的内容,当然,这两个方法也可以直接输出视图页和内容页。

@Html.Partial()的参数为用户控件名称,也就是分部页名称,返回值为string类型,可以直接输出。

@Html.RenderPartial()的参数也为用户控件名称,返回值为VOID,调用的时候直接把内容输出到Response中。

用法如下:

@Html.Partial("_PartialLogin")

@{

Html.RenderPartial("_PartialLogin");

}

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

mvc怎么套用html模板,ASP.NET MVC3模板页的使用(2)相关推荐

  1. SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板

    WCF Data Services是SharePoint 2010中一个极具吸引力的新特性.然而,因为它的强大,直接对其进行编程仍然会有点痛苦.幸运的是,一个新的相关技术 -- ASP.Net AJA ...

  2. ASP.NET MVC3细嚼慢咽---(2)模板页

    这一节演示下MVC3中怎样使用模板页,在传统的webform设计模式中,我们使用masterpage作为模板页,在MVC3 razor视图设计中,我们使用另一种方式作为模板页. 新建一个MVC3项目, ...

  3. ASP.NET MVC3 学习笔记(一)MVC模式简介

    以下文字摘自 ASP.NET MVC3 高级编程 MVC将应用程序的用户界面(User Interface,UI)分为三个主要部分: 模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则 视图 ...

  4. [MVC.NET] Asp.Net MVC3 简单入门第一季

    转自:http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2208042.html 初识Asp.Net MVC2.0 初识Asp.Net MVC2 ...

  5. html mvc 分页 保存,Asp.net Mvc3 加载cshtml文件自定义分页+ 查询

    遇到的问题: 单纯的数据列表,分页ok,但是加上其它外界因素,常见的如 查询,排序,分页如何跟它们结合呢? 分页如何和查询,排序结合? 我的思路,查询.排序为主,分页为次. 1.查询条件改变,页码重新 ...

  6. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  7. [译]Professional ASP.NET MVC3(01)-Chapter 1:Getting Started(上)

    本章概要 理解ASP.NET MVC ASP.NET MVC3 预览 如何创建MVC3应用程序 MVC应用程序结构 本章首先简要介绍ASP.NET MVC, 解释它怎样适应ASP.NET MVC的历史 ...

  8. ASP.NET MVC3 Razor视图引擎-基础语法

    I:ASP.NET MVC3在Visual Studio 2010中的变化 在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化. 1.ASP.NET MVC3必要的运行环境 ...

  9. ASP.NET MVC3书店--第七节 用户及身份验证(转)

    http://blog.sina.com.cn/s/blog_6ad539a90100r7jx.html 现在的问题是任何用户都可以通过StoreManager控制器来访问我们的书籍管理页面.接下来让 ...

最新文章

  1. 【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
  2. linux spyder 目录,linux下创建spyder桌面图标的方法
  3. POJ2369 置换群
  4. 各个 Android Gradle 插件版本所需的 Gradle 版本
  5. Android之如何使用junit
  6. pygame写游戏,常用代码记录
  7. Jquery 中的CheckBox、 RadioButton、 DropDownList的取值赋值
  8. Jeecg-Boot上传及下载附件异常处理
  9. 机器学习与计算机视觉(第一个卷积神经网络)
  10. [20190312]视图v$datafile字段OFFLINE_CHANGE#, ONLINE_CHANGE#.txt
  11. ubuntu16.04便捷使用(常用工具、常用快捷键、常用使用教程)
  12. 盲盒小程序源码下载、附赠完整图片素材源码
  13. 博客背景壁纸推荐(一)CSDN图床
  14. Windows系统邮件中如何绑定QQ邮箱
  15. Office2013办公软件简体中文专业增强版
  16. 正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式
  17. Jboot框架的使用
  18. 区块链为化解信任危机带来新契机
  19. 学生个人网页设计作品 学生个人网页模板简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  20. 如何提升自己的设计能力

热门文章

  1. SAP Spartacus里所有backend endpoint list
  2. SAP Spartacus OccEndpointsService调用getBaseEndpoint的一些场景
  3. SAP CRM WebClient UI交互式报表的Gross Value工作原理
  4. SAP云平台部署应用时遇到的502 Updating service failed - Bad Gateway
  5. 将SpringBoot应用Docker化并部署到SAP云平台
  6. SAP ERP Material如何创建附件
  7. progressIndicator in SalesPipeline
  8. Hybris Commerce Cloud backoffice的一些使用截图 - home工作中心
  9. 阮一峰react demo代码研究的学习笔记 - demo7 debug - create ref element
  10. BCP timeout prevention - 每秒刷新一次 Fiori