Razor基本語法


前言:

Razor引擎的核心是識別@符號及尖括號:
    1、<...></...>
    2、<.../>
    [之所以說是“尖括號”而非“元素標簽”,見下面的例子。]

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

基本語法:

語法一、@()


    表達式

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

語法二、@{}


    語句塊

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

語法三、@


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

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

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

語法四、@helper


    聲明方法

@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)

語法五、@**@


    注釋

@*
    這是一個注釋
*@

語法六、Razor內置標簽<text></text>


    用於直接輸出內容

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

語法七、轉義符

例:
    @@
    @class

@{
    @:轉義符@@
}

 

補充:

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

@{ 
    var str = "<div style='color:red'>我會被轉義嗎?</div>";
}
@str
@Html.Raw(str)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM