Razor基本語法

前言:

Razor引擎的核心是識別@符號及尖括號:
    一、<...></...>
    二、<.../>
    [之因此說是「尖括號」而非「元素標籤」,見下面的例子。]html

@for (int i = 0; i < 5; i++)
{
    <test>i</test>
}

基本語法:

語法1、@()


    表達式編程

@( 1 == 0 ? "1等於0" : "1不等於0")

語法2、@{}


    語句塊app

@{
    var now = DateTime.Now;
    if (now.Hour.CompareTo(12) < 0)
    {
        <span>上午</span>
    }
    else
    {
        <span>下午</span>
    }
}

語法3、@


    一、@後面直接跟變量輸出變量的內容
    二、@後面直接跟有返回值的方法輸出方法的返回值
    三、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>
}

特殊場景:@注意點
   一、編程語言要與輸出字符串隔離
   二、不能調用無返回值的方法,解決方法是使用語句塊@{}.
ui

<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();
    }
}

語法4、@helper


    聲明方法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)

語法5、@**@


    註釋code

@*
    這是一個註釋
*@

語法6、Razor內置標籤<text></text>


    用於直接輸出內容htm

@for (int i = 0; i < 5; i++)
{
    <text>@i</text>
}

語法7、轉義符

例:
    @@
    @classip

@{
    @:轉義符@@
}

 

補充:

Razor引擎輸出HTML默認會轉義,須要不轉義輸出使用html.Raw()方法最爲方便。ci

@{ 
    var str = "<div style='color:red'>我會被轉義嗎?</div>";
}
@str
@Html.Raw(str)
相關文章
相關標籤/搜索