第一节。Razor视图引擎
ASP。NET的MVC经历了很多版本,正在不断完善。从MVC 3开始才流行起来,很多公司开始采用ASP。NET的MVC框架来开发自己的软件系统。这是因为Razor视图被添加到ASP。NET的MVC 3版本。这个时候使用视图就不再那么繁琐,只需要一个@符号就可以轻松获得C#代码的介绍。

Razor view非常轻量级,整套语法只需要一个@符号,比之前版本的symbols简洁很多。对于开发者来说,在Visual Studio 2019 IDE中,还提供了智能感知功能,使得C#代码编写更加灵活简单。
第二节。代码表达式
在ASP.NET MVC视图中,使用Razor视图引擎,可以在*中使用C#中的变量和表达式。cshtml视图代码,和C#代码表达式都可以用来参与计算。视图中的变量和表达式定义如下:
@ { Layout = nullString bName = "萧蔷";十进制bPrice = 300.98mbool b = false} @ model IEnumerable @ foreach { Number:@ p . Id Name:@ p . Name描述:@p.Remark
}在这段HTML代码的顶部,用@ {}编写所有定义的变量。在HTML代码中使用时,直接使用@变量名来获取值:
@bName,@bPrice
如果变量存储电子邮件地址,则它包含@字符。对于Razor视图的代码表达式,完全可以区分,可以这样使用,如下面的C#代码所示:@ { string emailAdd = " 123 @ 11} @emailAdd
在这段Html代码中,电子邮件地址包含@字符,在Razor视图中也有一个@字符。因此,当我们使用Razor视图获取邮件地址时,Razor可以正确识别。这就是Razor view的魅力和智能,受到一群。NET开发爱好者。
第三节。HTML编码
为了防止XSS攻击,Razor视图是自动HTML编码的。这样就省去了一些不必要的基础代码,让我们更专注于业务逻辑代码的编写,大大加快了我们的编码速度。
使用下面的Razor视图来解释Html编码是如何执行的:

@ { string sc =}@sc
这里我们在给sc变量赋值时使用Javascript代码,但是在P标签中使用@sc输出时,没有警告框,也就是这段Javascript代码没有运行。而是直接显示原始的Html代码。在输出结果中,你看到的是纯文本代码,但是没有执行,这说明ASP.NET MVC内部是用HTML编码的。
如果要执行Html标记的结果,可以使用HTML。Raw方法输出原始的HTML结果,此时不会自动对其进行编码。
@Html。生的
使用上面一行代码执行原来的Javascript代码,会弹出一个警告框。效果如下图所示:此时,我们可以清楚地看到上面的Javascript代码已经运行的结果,这就是Html的功能。生辅助法。
第四节。码组
在ASP.NET MVC中,Razor view不仅支持代码变量和表达式,还支持代码块。下面的C#代码:
@{int[] intArray = { 1,2,3,4,5,6,7,8,9,10 };} @foreach { @n }
在这段代码中,首先定义一个int类型的intArray数组,然后在HTML标记中使用@foreach语句遍历它。这个@foreach是代码块。代码块是通过在视图中将多行代码放在一起而形成的代码块。以下代码段是代码块的实施例:
@ { Layout = nullString bName = "萧蔷";十进制bPrice = 300.98mbool b = falsestring emailAdd = " 123 @ 11字符串sc =}
上面的代码就是代码块,和*里写的代码一样。cs文件。

第五节。Razor语法
对于Razor语法来说,特别简单,就是使用@符号。只需在@之后写C#代码,这样我们就可以在Html代码中混合C#代码,方便灵活的将数据呈现给用户。使用以下Razor语法:
@ { Layout = nullstring Name = " ViewExample} @if) {Hello 123} else {@:Hello}
使用标签可以多行写纯文本,适合输出大量文本内容。@:格式只能输出一行文本内容。并且在这段代码中使用if语句来判断条件,这样就可以根据不同的值输出不同的内容给用户,比如VIP用户和普通用户,看到的东西也是不一样的。此时,C#中的过程控制语句可以嵌入到Html代码中。


