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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值