标识符 @

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引擎&视图布局的更多相关文章

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

    ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection ...

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

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

  3. ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  4. ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  5. [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码

    在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...

  6. Razor语法和Razor引擎大全

    一.Razor语法 1.Razor的标识符 解释:@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了.web form中使用<%%>中写服务器代码一个道理.在vs工具里 ...

  7. 012. MVC5中Razor引擎使用模板页

    1.文件→新建项目→框架选择.NET Framework 4.5 2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引 ...

  8. 关于Razor引擎的语法说明

    1.在页面上显示字符串的值, 格式:a*@变量名 但@之前必须有空格,{.}等,使得a*不可以构成变量的字符.

  9. Razor引擎中的_ViewStart.cshtml

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

随机推荐

  1. 8--Python入门--函数

    函数基本框架如下([]中的内容表示是或选的,可以不写):def 函数名(参数): ['''函数说明文档'''] 函数主体 [return 返回对象] 函数小例子 #我们先定义一个函数 def find ...

  2. 单细胞参考文献 single cell

    许多分析软件 : https://github.com/seandavi/awesome-single-cell#software-packages Smart-seq.CEL-seq.SCRB-se ...

  3. phpcms 加载微信类库,生成签名

    在phpcms 中 pc_base:load_config(文件名) 用于加载配置文件,配置文件存放于phpcms目录下的caches/configs中 在控制器新增加载微信类库的方法: /** * ...

  4. 3.1 unittest简介

    3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG.python里面也有单元测试框架-unittest,相当于是一个python版的junit.py ...

  5. es6学习日记5-对象的扩展

    属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. const foo = 'bar'; const baz = {foo}; baz // {foo: &q ...

  6. Python学习笔记(day23更新)

    第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信. 1.2 操作系统 作用:操作系统用于协同 ...

  7. SQLI DUMB SERIES-9&&10

    第五关.第八关以及第九关.第十关都是使用盲注,除了第五关说的双注入外,也可使用时间注入法 (1)无论输入啥,都回显相同 (2) ?id=1' and sleep(3) --+ 发现有明显延迟,说明可以 ...

  8. XML一

    HTML(HyperText Markup Language),即超文本标记语言,是用于描述网页文档的一种描述标记语言.                                  而XML(E ...

  9. go-json处理的问题

    1.通过Decoder来解析json串 package main import ( "encoding/json" "fmt" "io" & ...

  10. PythonStudy——Python中的None与 NULL(即空字符)的区别

    None与 NULL(即空字符)的区别  (1)是不同的一种数据类型 >>>type(None) <class 'NoneType'> >>>type( ...