<ul>
<%foreach(var p in products){%>
<li><%=p.Name%>($<%=p.Price%>)</li>
<%}%>
</ul>
2)Razor引擎
<ul>
@foreach(var p in products){
<li>@p.Name($@p.Price)</li>
}
<ul>
伟大的@
(1) Razor中服务器端代码段的起始位置均使用@符号作为开始
1)ASPX引擎
<%
int x=12;
string;
%>
2)Razor引擎
@{
int x=12;
string;
}
(2)渲染输出
1)经过HTML编码(放置被攻击)
1)ASPX引擎
<span><%:model.Message%></span>
2)Razor引擎
<span>@model.Message</span>
2)未经HTML编码
1)ASPX引擎
<span><%=model.Message%></span>
2)Razor引擎
<span>@Html.Raw(model.Message)</span>
(3)代码和标记混合
1)ASPX引擎
<%foreach(var item in items){%>
<span><%:item.Prop%></span>
<%}%>
2)Razor引擎
@foreach(var item in items){
<span>@item.Prop</span>
}
(4)代码和纯文本混合
1)ASPX引擎
<%if(foo){%>
Plain Text
<%}%>
2)Razor引擎
@if(foo){
<text>Plain Text<text>
}
@if(foo){
@:Plain Text
}
(5)<text>标签式一个Razor特殊处理的元素,Razor将<text>块内部内容视为内容块,不呈现包含那些内容的<text>标签
(这意味着只呈现<text>内部内容,不呈现标签本身)。这使呈现没有被HTML元素包装的多行内容块变得方便
(6)表达式与文本混合
1)ASPX引擎
Hello <%:title%>.<%:name%>
2)Razor引擎
Hello @title.@name
(7)Email地址
1)hyl934532778@live.cn
Razor可以自动识别Email地址而不作为服务器端代码执行
(8)两个连续的@@符号会被渲染成一个@符号
<span>I Hava A Dream,@@Kencery </span>
(9)显示渲染输出
1)<span>ISBN@(isbnNumber)</span>
2)当要渲染输出的代码@前无空格或标记位时,我们需要使用小括号继续您显示的渲染输出
(10)服务器端注释
1)ASPX引擎