原文:http://www.cnblogs.com/youring2/archive/2011/07/24/2115254.html
1.Razor的文件类型
Razor支持两种文件类型,分别是.cshtml 和.vbhtml,其中.cshtml 的服务器代码使用了c#的语法,.vbhtml 的服务器代码使用了vb.net的语法。
由此也可以看出,Razor其实是一种服务器代码和HTML代码混写的代码模板,类似于没有后置代码的.aspx文件。
2.Razor语法之@符号
@字符是Razor中的一个重要符号,它被定义为Razor服务器代码块的开始符号。如果我们希望在网页中输出一个变量,或者当前日期,我们可以使用如下代码:
@{string productName = "台灯";} <span>@productName</span> <span>@DateTime.Now.ToString("yyyy-MM-hh")</span>
@符号标记了一个HTML代码的输出,在其后的变量、方法返回值和表达式运算结果会进行输出。
3.Razor语法之代码块定义
你可以使用@{code}来定义一段代码块。
@{ int num1 =10; int num2 =5; int sum = num1 + num2; @sum; }
在代码块中,我们编写代码的方式和通常服务器端代码的方式是一样的。另外,如果需要输出,例如上面的在页面中输出结果,我们可以使用@sum完成输出
另外,@(code)可以输出一个表达式的运算结果,上面的代码我们也可以写成这样:
@{ int num1 =10; int num2 =5; int sum = num1 + num2; @(num1 +num2); }
4.Razor语法之代码混写
Razor支持代码混写。在代码块中插入HTML、在HTML中插入Razor语句都是可以的。
@{ int num1 =10; int num2 =5; int sum = num1 + num2; string color ="Red"; <font color="@color">@sum</font> }
- 输出@符号:@@
- 输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码块中,只需要使用 @:Tom@gmail.com 即可。@:表示后面的内容为文本。
- 输出HTML代码(包含标签):直接输出,string html = "<font color='red'>文本</font>"; @html
- 输出HTML内容(不包含标签):有两种方法,第一种:IHtmlString html=new HtmlString("<font color='red'>文本</font>"); @html; 第二种:string html = "<font color='red'>文本</font>"; @Html.Raw(html);
5.Razor语法之注释
这里所说的注释是指服务器端的注释,在Razor代码块中,可以使用C#的注释方式来进行注释,分别是//:(单行注释)和/**/(多行注释)。
另外,Razor还提供了一种新的服务器段代码注释,可以即注释C#代码,同时可以注释HTML代码,@**@,这种注释方式不受代码块的限制,在Razor代码中的任何位置都额可以。
@*
这是一个注释
<b>这个是注释</b>
*@