MVC3 Razor出现后我们就可以选择不再使用asp.net master 模板页。取而代之的是cshtml razor的模板文件。用法个人认为还是和master模板页类似。但在mater模板页的原有功能上有了进一步扩展,更方便开发。

新建MVC3项目的时候会在View中自动生成_ViewStart.cshtml文件(功能:每个页面加载的时候都会加载这个文件中引用页面(自动生成的模板页)),我们就无需在每一个具体的View页面引入模板页。减少View页面内的重复代码。具体的可以建立一个MVC3 Application 选择razor模板,VS会自动建立上述机制。你也可以自己定义自己的布局页面 如:在Shared文件夹中新建_MyLayout.cshtml页面 将_ViewStart.cshtml文件中的地址改为:

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

启动的时候就会加载你定义的页面,这样就可以做一个功能如:根据不同的角色或者用户加载不同的布局页面。

小技巧 : 在 ASP.NET MVC3 中,如果一个在View文件夹或Shared文件夹中的视图以"_"开头命名的话,外部是不能单独访问他的,他只能作为局部视图嵌套在其他视图中。为什么?我只能这样解释 因为MVC3的加载机制过程是: 执行Controller → Model → View+_ViewStart.cshtml的顺序,然后把产生的页面带回到原来的View中再回传。

1,@RenderBody()方法:直接渲染整个View到占位符处,而不需要原来所使用的,只能在_Layout.cshtml中使用一次

2,@RenderSection方法。可以让我们在模板页预设一个区域,未来给继承该模板页的View使用。具体请看以下操作:

在MVC3.0 shared文件夹下_Layout.cshtml这个模板文件内加入以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    @RenderSection("Head", required: false) //当为true的时候 每一个页面都要加@section Head{ 内容} 这个标签,不然就报错。
</head>
<body>
<div class="page">

以上代码第7行,预留出一个Head的section。 熟悉模板页的人,应该明白该处是预留是给未来具体的

View页面自定义特定js/css使用的。
这个View我们就用默认的Home底下的Index来举例。打开index.cshtml 写入以下代码

@{
    ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
@section Head{
    <script type="text/javascript">
        $(function () {
            alert("hello jquery");
        });
    </script>
}

该View已经集成了_Layout.cshtml模板页,这里只是填充模板页内的Head section这时就可以加入我们的针对每个view页面的js或者CSS了。至此达到共性外的个性。
只要你在_Layout.cshtml模板页面加了  @RenderSection("Head", required: true) ,required参数值:true 时候,一定要在其他的视图页面加上

@section Head{
    <script type="text/javascript">
        $(function () {
            alert("hello jquery");
        });
    </script>
}
注意可以随便添加在哪里都可以的,Head为自定义标签 可以自己改动 。未完待续。。。。。。

MVC3基础嵌套总结相关推荐

  1. ASP.NET MVC3 系列教程 - 目录

    I:ASP.NET MVC3 新增的功能 ASP.NET MVC3 系列教程 - Razor视图引擎基础语法 ASP.NET MVC3 系列教程 - View的变化 ASP.NET MVC3 系列教程 ...

  2. java嵌套循环_java基础之嵌套循环

    一. for循环双层嵌套 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环.(外循环控制行数,内循环控制每一行的个数) f ...

  3. antv 官方文档参考 ywy(基础)

    一.画布 ### 属性设置 import { Graph } from '@antv/x6';// JSON / JS 图像数据 const data = {// 节点nodes: [{id: 'no ...

  4. vuejs study

    百度脑图 vuejs 入门 opendigg/awesome-github-vue: Vue相关开源项目库汇总 vuejs/awesome-vue: A curated list of awesome ...

  5. WRF模式安装(ubuntu)

    WRF模式在气象和相关学科领域有广泛的用途,但其安装对于许多人而言仍是一个难题.本文提供一个比较简便的WRF模式安装,要求:ubuntu系统,拥有sudo密码权限,机器能够联网. 1 编译器和部分基础 ...

  6. python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型

    (点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...

  7. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  8. html带颜色表格怎么做,使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作...

    行颜色设置的简便方法 使用HTML添加表格4(行颜色与表格嵌套)--零基础自学网页制作 昨天我们在<使用HTML添加表格3(间距与颜色)--零基础自学网页制作>(目录在结尾)中学习了设置单 ...

  9. 【Python基础】嵌套 JSON 秒变 Dataframe!

    来源:Python数据科学 作者:东哥起飞 调用API和文档数据库会返回嵌套的JSON对象,当我们使用Python尝试将嵌套结构中的键转换为列时,数据加载到pandas中往往会得到如下结果: df = ...

最新文章

  1. 缓存的Cache Aside模式
  2. 后台开发经典书籍--linux性能优化
  3. 计算机辅助教学 林筑英,视频教学制作技巧.doc
  4. 【WPF】ListBox嵌套与事件冒泡
  5. Android App 瘦身总结 第二章 jni动态库及cpu兼容
  6. osg多线程_尝试使用Osg编译上下文实现多线程编译显示列表--总结
  7. Clean Code 《代码整洁之道》前四章读书笔记
  8. 如何在Adobe Illustrator中矢量化图像
  9. [转]SQL Collation冲突解决 临时表
  10. 互联网是由许多计算机组成的网络,互联网运行原理:计算机网络是由许多计算机组成的...
  11. FPGA教程和allegro教程-链接
  12. 无盘服务器1410M,【说好的每周一贴】网维9系整套施工指南及常见问题与解决方法!!...
  13. 使用 ListView 控件展示数据
  14. 这些最真实的 “猥琐程序员”,今天必须曝光!
  15. 【Elasticsearch教程13】Mapping字段类型之nested
  16. 腾讯互娱技术总监张正:《天涯明月刀》后台技术创新
  17. 绿布抠像怎么抠干净_AE如何抠取绿幕视频 干净抠像教程
  18. MyTinySTL的rb_tree源码分析
  19. 金庸笔下用脚发暗器_移动的艺术:使用明暗器图创建动画材质
  20. 全国计算机考试如何查准考证号

热门文章

  1. “第八期央企CIO论坛”成功举办
  2. java读properties的通用类,兼容linux和windows
  3. 【后缀数组】bzoj2217 Secretary
  4. 快速排序的C++实现
  5. 【贪心】LeetCode 3. Longest Substring Without Repeating Characters
  6. 动态规划--总体理解
  7. TCP协议最大字节数计算
  8. 使用Eclipse编写Processing小程序
  9. python 使用 plt.savefig() 保存图片去除旁边的空白区域
  10. Windows Azure Storage (1) Windows Azure Storage Service存储服务