ASP.NET MVC小结之基础篇(一)(2)

<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引擎

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjzgwg.html