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 &raquo;</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引擎使用模板页的更多相关文章

  1. MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection

    RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...

  2. ASP.NET MVC 利用Razor引擎生成静态页

    实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView: 2. ...

  3. ionic 向路由中的templateUrl(模板页)传值

    .state('product', { url: '/product/:id', templateUrl: function ($routeParams) { return '/Product/Ind ...

  4. Razor引擎中的_ViewStart.cshtml

    Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...

  5. Mvc 模板化的Razor引擎委托

    最近在研究NopCommerce,它后台用的富文本编辑器可根据语言库加载不同语言的编辑器,其中用到了模板化Razor引擎委托,参考这儿 废话不多说,直接上代码. public static class ...

  6. 独立使用Asp.net Core 的razor模板 (一):Razor引擎的一些细节

    由于最近需要写一些界面稍微好看点的Winform程序,如果用原生控件,,想要达到好看的程度,需要花费比较大的功夫,因为之前使用过CefSharp,因此发觉如果是使用CEF+Html的方式,界面可以相对 ...

  7. MVC中子页面如何引用模板页中的jquery脚本

    MVC中子页面如何引用模板页中的jquery脚本 最近在学习mvc,遇到了一个问题:在html页面中写js代码,都是引用mvc5自带的jquery脚本,虽然一拖(将指定的jquery脚本如 jquer ...

  8. C#中在内容页获取其模板页中的变量,或者值

    在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题, ...

  9. asp.net模板页实现类似jquery中document.ready

    模板页先判断是否有方法DocumentReady,有的话就调用 1.模板页 <script type="text/javascript" language="jav ...

随机推荐

  1. css文本(教程)

    1.text-transform --文本转换 定义文本的大小写状态,此属性对中文无意义 取值:capitalize | uppercase | lowercase | none | inherit ...

  2. kindeditor上传本地图片实例

    所需插件:kindeditor下载   密码: 5ry4 jsp文件: <script type="text/javascript" language="javas ...

  3. C++中static与const成员

    一.static成员 (1)static数据成员 static数据成员的创建是为了对象之间的共享和沟通,具有以下特点: 1.1 static数据成员属于类,只占一份空间(不像普通数据成员每个对象中都有 ...

  4. 原生JS日历 + JS格式化时间格式

    公司项目中用到,以前没做过,废了好几个小时 终于做好了 先来效果图(暂时没写样式 凑合着看吧) 点击左右按钮都能改变月份 下方表格中的数据也会跟着变化 贴上代码 : html部分: <div s ...

  5. Java8_03_流

    一.前言 这一节我们来看下Java8的又一新特性:流. 本节主要包括以下内容: 流的相关概念 使用流 收集器 二.流的相关概念 流允许你以声明性方式处理数据集合,可以将其看成遍历数据集的高级迭代器. ...

  6. 【CSAPP】二、信息的表示和处理

    三种重要的数字表示:无符号 . 补码 . 浮点数. [一]信息存储 最小单位是字节, 在操作系统层面,只需要关注地址.系统将存储器空间划分为更可管理的单元,存放不同的程序对象(程序数据.指令.控制信息 ...

  7. Kotlin 第一弹:自定义 ViewGroup 实现流式标签控件

    古人学问无遗力, 少壮工夫老始成.纸上得来终觉浅, 绝知此事要躬行. – 陆游 <冬夜读书示子聿> 上周 Google I/O 大会的召开,宣布了 Kotlin 语言正式成为了官方开发语言 ...

  8. mysql的5.6版本支持分区吗?

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/72291698 本文出自[我是干勾鱼的博客] 我们知道,查看mysql是否支持分区 ...

  9. 提高看log效率的小工具

    文本型的log,比如Android的log,都是普通文本.在大家连续奋战的时候,难免看起来容易眼花. 这时候如何提高效率?我们给它搞个高亮好不好? 这就是我们要介绍的看log工具:TextAnalys ...

  10. Hive——巧用transform处理复杂的字符串问题

    相比于Map-Reduce,Hive对数据的处理相对简单,但是Hive本身提供的函数,对于处理复杂的字符串问题,就显得不是很方便,此时,可以借助transform,引入外界的Python程序对字符串进 ...