012. MVC5中Razor引擎使用模板页
1.文件→新建项目→框架选择.NET Framework 4.5
2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引擎
3. 创建好项目的主要目录(文件)解释:
4. _Layout.cshtml主要注释:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - 我的 ASP.NET 应用程序</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr") </head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("应用程序名称", "Index", "Home", new
{
area = ""
}, new
{
@class = "navbar-brand"
})
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("主页", "Index", "Home")</li>
<li>@Html.ActionLink("关于", "About", "Home")</li>
<li>@Html.ActionLink("联系方式", "Contact", "Home")</li>
</ul>
@Html.Partial("_LoginPartial")
</div>
</div>
</div>
<div class="container body-content">
<!--使用@RenderBody()这种方式, 作为子页面填充区域; 这个可以作为母版页的第一个需要填充的区域;
也就是说模板页的挖的第一个坑
-->
@RenderBody()
<hr />
<!--第一个参数字符串,在母版页中这个字符串可以随便定义, 但是在子页面中必须和此字符串保持一致; 其实在子页面中是可以点出来的
, 第二个参数为true表示此部分必须在子页面中被填充; 也就是说如果为true, 则子页面必须将这个坑填上-->
@RenderSection("leftTreeView", true);
<footer>
<p>© @DateTime.Now.Year - 我的 ASP.NET 应用程序</p>
</footer>
</div>
<!--使用@Scripts.Render("~/bundles/jquery")这种方式, 作为子页面填充区域-->
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
5. 添加一个自己的布局文件, 邮件Shared目录→添加→新建项→MVC→MVC5布局页(Razor):
6. 自定义母版页中的填充项和子页面如何填充母版页
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
<div>
<!--必须填充的项-->
@RenderBody()
</div> <div>
<!--第二个填充项, 这里设置为true, 也为必填项-->
@RenderSection("floot", true)
</div>
</body>
</html>
子页面如何填充模板页
@{
ViewBag.Title = "Home Page";
<!--由于MVC5所有页面都默认使用_Layout.cshtml页面作为默认的母版页, 所以
可以在这个地方对其进行更改, 更改后此页面就会使用_MyLayout.cshtml这个页面作为母版页-->
Layout = "~/Views/Shared/_MyLayout.cshtml";
}
<div class="row">
<div class="col-md-4">
<h2>Getting started</h2>
<p>
ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that
enables a clean separation of concerns and gives you full control over markup
for enjoyable, agile development.
</p>
<p><a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301865">Learn more »</a></p>
</div>
</div>
<!--注意由于母版页发生了改变, 所以必须对母版页上所有定义了的, 并且为true的坑, 都要填充, 要不然就会报错
节未定义:“floot”。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 节未定义:“floot”<div>@@RenderSection("floot", true)</div></body>
-->
@section floot{
<p>我来填充自定义的floot</p>
012. MVC5中Razor引擎使用模板页的更多相关文章
- MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection
RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...
- ASP.NET MVC 利用Razor引擎生成静态页
实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView: 2. ...
- ionic 向路由中的templateUrl(模板页)传值
.state('product', { url: '/product/:id', templateUrl: function ($routeParams) { return '/Product/Ind ...
- Razor引擎中的_ViewStart.cshtml
Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...
- Mvc 模板化的Razor引擎委托
最近在研究NopCommerce,它后台用的富文本编辑器可根据语言库加载不同语言的编辑器,其中用到了模板化Razor引擎委托,参考这儿 废话不多说,直接上代码. public static class ...
- 独立使用Asp.net Core 的razor模板 (一):Razor引擎的一些细节
由于最近需要写一些界面稍微好看点的Winform程序,如果用原生控件,,想要达到好看的程度,需要花费比较大的功夫,因为之前使用过CefSharp,因此发觉如果是使用CEF+Html的方式,界面可以相对 ...
- MVC中子页面如何引用模板页中的jquery脚本
MVC中子页面如何引用模板页中的jquery脚本 最近在学习mvc,遇到了一个问题:在html页面中写js代码,都是引用mvc5自带的jquery脚本,虽然一拖(将指定的jquery脚本如 jquer ...
- C#中在内容页获取其模板页中的变量,或者值
在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题, ...
- asp.net模板页实现类似jquery中document.ready
模板页先判断是否有方法DocumentReady,有的话就调用 1.模板页 <script type="text/javascript" language="jav ...
随机推荐
- python基础7 - 函数2
4. 使用元组让函数返回多个值 利用 元组 同时返回温度和湿度 def measure(): """返回当前的温度""" temp = 39 ...
- 分享知识-快乐自己:能使 Oracle 索引失效的六大限制条件
Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时候却适得其反. 例如一张表中有上百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这可能是 oracle 索引失效造成的.or ...
- 四 web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPa ...
- day5-hashlib模块
一.概述 在程序开发过程中,很多时候会涉及用户信息验证环节,这类场景下我们往往需要对字符串进行加密处理.python中也有专门的加密模块,它就是hashlib.下面章节将详述它的常见用法. 二.常见加 ...
- C#学习历程(一)[基础概念]
#小摘要 >> boolean和bool差不多是一个东西,但是bool是一个基本值的类型,boolean则是对象(java与javascript中有用). Bool是Boolean的别名. ...
- H264的nalu type有哪些?
1.forbidden_bit: 禁止位,初始为0,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元. 2.nal_ ...
- QT画图
if (0) { QApplication a(argv, args); QGraphicsScene scene; scene.setSceneRect(-300,-300,600,600); sc ...
- 在spring配置文件中的 <context:property-placeholder/>用途
location属性为 具体配置文件的classpath:地址 (可以取配置文件中的值利用${key}的形式,而不用多次写值) 1.这样一来就可以为spring配置的bean的属性设置值了,比如spr ...
- CentOS 6.5添加网易163源
换国内的yum源. 准备工作,首先备份/etc/yum.repos.d/CentOS-Base.repo cd /etc/yum.repos.d/ wget http://m ...
- noip济南清北冲刺班DAY1
上午 T1 立方数 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数. 现在给定一个数P,LYK想要知道这个数 ...