<记录> 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执行之 ...
随机推荐
- list的相关函数
# ### 列表相关的函数 # (1) append ''' 功能:向列表的末尾添加新的元素 格式:列表.append(值) 返回值:None 注意:新添加的值在列表的末尾,该函数直接操作原有列表 ' ...
- 蓝牙协议分析(9)_BLE安全机制之LL Privacy
1. 前言 在上一篇文章[1]中,我们介绍了BLE的白名单机制,这是一种通过地址进行简单的访问控制的安全机制.同时我们也提到了,这种安全机制只防君子,不防小人,试想这样一种场景: A设备表示只信任B. ...
- Tex_Err:缺失wlscirep.cls
使用期刊模板编译时,需要'.cls'一类格式文件支持.从Overleaf上直接Copy代码到本地,发现自己的tex运行时会报错: ! LaTeX Error: File `wlscirep.cls' ...
- ChIP-seq 学习内容
chip-seq 流程图 书籍资料 工具 UCSU 安装 使用 原理 手册 Swiss在线分析工具 短序列比对工具 BWA 流程 格式处理 序列比对 peak-calling motif 可视化 输出 ...
- 【oracle入门】数据模型
数据模式也是一这种模型,它是数据库中用于提供信息表示的操作手段的形式架构,是数据库中用来对现实世界惊喜抽象的工具.数据模型按不同的应用层次分为3种类型,分别为概念数据模型.逻辑数据模型.物理数据模型. ...
- 全栈爬取-Scrapy框架(CrawlSpider)
引入 提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法 ...
- 【leetcode】448. Find All Numbers Disappeared in an Array
problem 448. Find All Numbers Disappeared in an Array solution: class Solution { public: vector<i ...
- linux的基本操作1
文件系统 ext4 d: 进入d盘dir /w 以友好的方式列出目录cd 目录名 进入目录cd\ 退出目录cd .. 退出到上级目录ipconfig /all 显示本机网络信息 ...
- Google - Reconstruct To Chain
/* 4. 给你一串input,比如: A -> B B -> C X -> Y Z -> X . . . 然后让你设计一个data structure来存这些关系,最后读完了 ...
- SQL SERVER 月、季、年统计与常用查询语句汇总
一.SQL SERVER 月.季.年统计查询 --本天 SELECT *FROM dbo.TableName WHERE DATEDIFF(DAY,TimeField,getdate())= 0; - ...