<记录> Razor引擎&视图布局
标识符 @
Razor支持HTML和C#代码混编,意味着可以在HTML中随意输出变量
基本使用方法
- 直接@后面跟变量(当遇到 HTML标签 、空格、换行符等特殊符号时 便认为@之后到特殊符号前为变量名,特殊符号后的内容原样输出)
 
<p>my name is @ViewBag.name</p> my job is @ViewBag.job
以上代码输出了 ViewBag.name 和ViewBag.job 的值
- @后面跟大括号(代码段声明,代码段中代码全部当做C#代码 ,但是HTML标签会原样输出 ,输出变量同样适用@)
 
@{
    List<Employee> employees = new List<Employee>();
    for (int i = ; i < ; i++)
    {
        Employee employee = new Employee();
        employee.Name = "李二狗" + i;
        employee.Age =  + i;
        employee.Job = (Career)(i/);
        employees.Add(employee);
    }
}
<table>
    <tr>
        <td>姓名</td>
        <td>年龄</td>
        <td>职业</td>
    </tr>
    @* 从这里开始声明C#代码段 *@
    @foreach (Employee item in employees)
    {
        <tr>
             @*  在C#代码段中 HTML标签会被原样输出(混编的好处) 输出变量需要在前面加上@  *@
         <td>@item.Name</td>
              <td>@item.Age</td>
              <td>@item.Job.ToString()</td>
        </tr>
    }
</table>
注释
@*注释代码*@ 会被输出,查看源代码可以看到
<!--注释代码--> 不会输出
引入命名空间
@using 命名空间
视图布局
1. 布局页引入
- 一般放在 ~/View/Shared/布局页名称.cshtml
 - 在需要布局页的页面首部引用布局页
 
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
- 可以在_ViewStart.cshtml中设置,这样所有的页面都会生效
 
2.布局页语法
定义:
<body>
<div>
@RenderSection("header")
<hr />
@RenderBody()
<hr />
@RenderSection("footer")
</div>
</body>
使用:
@section footer
{
<h1>here is footer for home page</h1>
} <h2>here is body for Home Page</h2> @section header
{
<h1>Here is header for Home page</h1>
}
header区域的内容会被输出到header footer区域内容会被输出到footer 无论顺序如何
3. 引入静态文件
.net MVC提供一套静态文件打包工具
需要在/App_Start/BundleConfig.cs中先定义,例如
//在视图中引入Content/css相当于引入 bootstrap.css 和 site.css
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
视图中使用
@Styles.Render("~/content/home")
//引入css
@Scripts.Render("~//bundles/jquery")
//引入js
<记录> Razor引擎&视图布局的更多相关文章
- Razor引擎学习:RenderBody,RenderPage和RenderSection
		
ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection ...
 - MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection
		
RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...
 - ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门
		
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
 - ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门
		
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
 - [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码
		
在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...
 - Razor语法和Razor引擎大全
		
一.Razor语法 1.Razor的标识符 解释:@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了.web form中使用<%%>中写服务器代码一个道理.在vs工具里 ...
 - 012. MVC5中Razor引擎使用模板页
		
1.文件→新建项目→框架选择.NET Framework 4.5 2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引 ...
 - 关于Razor引擎的语法说明
		
1.在页面上显示字符串的值, 格式:a*@变量名 但@之前必须有空格,{.}等,使得a*不可以构成变量的字符.
 - Razor引擎中的_ViewStart.cshtml
		
Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...
 
随机推荐
- 8--Python入门--函数
			
函数基本框架如下([]中的内容表示是或选的,可以不写):def 函数名(参数): ['''函数说明文档'''] 函数主体 [return 返回对象] 函数小例子 #我们先定义一个函数 def find ...
 - 单细胞参考文献 single cell
			
许多分析软件 : https://github.com/seandavi/awesome-single-cell#software-packages Smart-seq.CEL-seq.SCRB-se ...
 - phpcms 加载微信类库,生成签名
			
在phpcms 中 pc_base:load_config(文件名) 用于加载配置文件,配置文件存放于phpcms目录下的caches/configs中 在控制器新增加载微信类库的方法: /** * ...
 - 3.1 unittest简介
			
3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG.python里面也有单元测试框架-unittest,相当于是一个python版的junit.py ...
 - es6学习日记5-对象的扩展
			
属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. const foo = 'bar'; const baz = {foo}; baz // {foo: &q ...
 - Python学习笔记(day23更新)
			
第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信. 1.2 操作系统 作用:操作系统用于协同 ...
 - SQLI DUMB SERIES-9&&10
			
第五关.第八关以及第九关.第十关都是使用盲注,除了第五关说的双注入外,也可使用时间注入法 (1)无论输入啥,都回显相同 (2) ?id=1' and sleep(3) --+ 发现有明显延迟,说明可以 ...
 - XML一
			
HTML(HyperText Markup Language),即超文本标记语言,是用于描述网页文档的一种描述标记语言. 而XML(E ...
 - go-json处理的问题
			
1.通过Decoder来解析json串 package main import ( "encoding/json" "fmt" "io" & ...
 - PythonStudy——Python中的None与 NULL(即空字符)的区别
			
None与 NULL(即空字符)的区别 (1)是不同的一种数据类型 >>>type(None) <class 'NoneType'> >>>type( ...