Razor引擎的核心是識別@符號及尖括號:
一、<...></...>
二、<.../>
[之因此說是「尖括號」而非「元素標籤」,見下面的例子。]html
@for (int i = 0; i < 5; i++)
{
<test>i</test>
}
表達式編程
@( 1 == 0 ? "1等於0" : "1不等於0")
語句塊app
@{
var now = DateTime.Now;
if (now.Hour.CompareTo(12) < 0)
{
<span>上午</span>
}
else
{
<span>下午</span>
}
}
一、@後面直接跟變量輸出變量的內容
二、@後面直接跟有返回值的方法輸出方法的返回值
三、if-else、switch、for、foreach、while、do-while等流控制語句編程語言
@now.Hour<br />
@now.ToShortDateString()<br />
@if (now.Hour.CompareTo(12) < 0)
{
<span>上午</span>
}
else
{
<span>下午</span>
}
<br />
@for (int i = 0; i < 5; i++)
{
<span>@i</span>
}
特殊場景:@注意點 <span>不能切換到@now.編程語言</span><br /> <span>不能切換到 @now .編程語言</span><br /> @{ RazorTestClass.SayHello(); } public class RazorTestClass { public static void SayHello() { return;
} public static string SayHello<T>(T t) { return t.ToString();
} } |
聲明方法spa
@helper paging(uint itemCount,uint pageSize,uint pageIndex)
{
uint totalPagesCount = itemCount%pageSize == 0 ? itemCount/pageSize : itemCount/pageSize + 1;
if (0 ==
totalPagesCount
)
{
totalPagesCount = 1;
}
for (
uint i = 1; i <= totalPagesCount; i++)
{
if (
i == pageIndex)
{
<a class="pagination current" href="#?pageIndex=@i">@i</a>
}
else
{
<a class="pagination" href="#?pageIndex=@i">@i</a>
}
}
}
@paging(51, 10, 3)
註釋code
@*
這是一個註釋
*@
用於直接輸出內容htm
@for (int i = 0; i < 5; i++)
{
<text>@i</text>
}
例:
@@
@classip
@{
@:轉義符@@
}
Razor引擎輸出HTML默認會轉義,須要不轉義輸出使用html.Raw()方法最爲方便。ci
@{
var str = "<div style='color:red'>我會被轉義嗎?</div>";
}
@str
@Html.Raw(str)