Razor 是一种基于服务器端代码的可以转换为网页的标记语法。Razor 语法包括 Razor 标记、C# 和 HTML 组成。包含 Razor 的文件通常后缀名为 .cshtml 。
Razor的作用域

Razor和Html混合编写
a.在作用域内容如果是以html标签开始则视为文本输出
b.如果输出@,则使用@@,

c.如果需在代码块中直接输出纯文字而不带HTML标签,则可以使用@:标签,如果在 “@:” 后面加上@就表示Razor语句的变量。注意前面要加空格
@for(var i = 10; i < 21; i++) {Line @i
}Line @i
} }@{
string[] members = {“Jani”, “Hege”, “Kai”, “Jim”};
int i = Array.IndexOf(members, “Kai”)+1;
int len = members.Length;
string x = members[2-1];
}
@{var price=50;}
@if (price>30) {The price is too high.
}@{var price=20;}
@if (price>30) {The price is too high.
} else {The price is OK.
}@{var price=25;}
@if (price>=30) {The price is high.
} else if (price>20 && price<30) {The price is OK.
} else {The price is low.
}@{
var weekday=DateTime.Now.DayOfWeek;
var day=weekday.ToString();
var message=“”;
}
@message
@RenderBody()来呈现子Web页面的内容,它可以省去我们在每个视图文件中写相同的html元素、JS和样式等的工作。

@RenderPage()方法
page当需要在一个页面中,输出另外一个Razor文件(页面)的内容时候用到,比如头部或尾部这些公共的内容时需要用到,比如头部或尾部这些公共的内容时需要用到,用@RenderPage()方法

@RenderSection()
解释:Section是定义在Layout的页面中使用的。在Layout的页面中用。在要Layout的父页面中使用@RenderSection()方法。
@RenderSecion()这个占位符表示:在这里会渲染页面里面的一个节(可以是html代码也可以是c#代码和Html的结合体)。
@RenderSection(“scripts”, required: false)做一个补充说明,第一个参数指明:在子页面被渲染的节的名称,第二个参数:指定子页面这个节是否是必需的,如果指定了required:true;但是在子页面没有给这个名称的节的话,编译是通不过的。

对于 ASP.NET Razor 注释,请使用它开头 @ 并结束注释 @。 批注可以位于一行或多行上:

@HTML.RenderAction 简单用法
①@HTML.ActionLink(“ActionName”)
调用页与当前页位于同一个控制器,可直接调用,显示对应的视图
②@Html.ActionLink(“actionName”,“controllerName”)
第一个参数为视图名称,第二个参数为视图对应的controller
③@html.actionlink(“actionName”,“controllerName”,
new{参数A=A,参数B=B})
@RenderSection
@RenderSection在母版页中占个位,然后让使此母版页的子页自己去呈现他们的section
@section xxx {