01 代码块
@{
//单行注释
int x=123;
string y = "hello world";
var z = “how are you”;
}
02 渲染输出
A 经过HTML编码
<span>收到消息@{model.Message}于@DateTime.Now </span> @*注意空格*@
<p>text @i.ToString()text</p >@*变量方法输出,则不用加{},但要加在@前加空格。@*
B 未经HTML编码
<span> @Html.Raw(model.Message) </span>
03 代码和标记混合
@foreach(var item in items){
<span> @model.Message </span>
}
04 代码和文本混合
A 单行
@if(foo){
@:原样文本
}
B 多行 (呈现没有被HTML元素包装的多行内容块变得方便)
@if(foo){
<text>原样文本</text>
}
05 表达式与文本混合
Hello @strTitleVar. @strNameVar. <!-- Hello zhang Mr. wang Ms. -->
@{ var i = “10”; }
<p> i = @i.AsInt() </p> <!-- 输出 i = 10 -->
06 Email地址 Razor自动识别Email地址: wang123@163.com, 如果要输出@符号, 则应用@@进行转义, 或者使用HTML ASCII编码@
<span> 这是一个邮件连接符@@ </span>
<span> 这是一个邮件地址wang123@163.com </span>
07 显示渲染输出
<span> ISBN @(strISBN) </span>
08 服务器端注释
@*
这是一个多行注释
换行的时候是这样的.
*@
09 渲染输出动态方法 @( )
当前用户: @(userObject1.GetName())
10 创建Razor委托
@{
Func<dynamic, object> b =
@<strong> @strItem </strong>
}
@b("Bold this")
11 内容中混合代码
<ul>
@foreach(var p in products){
<li>
@p.ProductName
@if(p.Price == 0){
@: (单价等于0,不正常哟!)
}
else if (p.Price <= 0.5){
@: (价格才 @p.Price 太便宜了!)
}
</li>
}
</ul>
12 内容在HTML标记闭合中时, 不需要每行加@
@if (p.UnitsInStock == 0){
<p>
第一行内容
第二行内容
时间: @DateTime.Now
第四行的内容
</p>
}
13 内容外部没有HTML标记包装时
@if (p.UnitsInStock == 0){
@: 第一行内容
@: 第二行内容
@: 第三行内容
}
@if (p.UnitsInStock == 0){
<text>
第一行内容
第二行: 时间: @DateTime.Now
第三行内容
</text>
}