• 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)
  • 相关阅读:
    bow lsa plsa
    拉普拉斯平滑处理 Laplace Smoothing
    程序员的出路在哪里
    Android各代码层获取系统时间的方法
    TCP/IP笔记 二.网络层(2)——ICMP,RIP,OSPF,BGP
    利用Xtrabackup备份集合恢复一台从库的过程
    char *和char[]的区别,困扰很长时间了,总结下
    不使用webview,用手机浏览器的android app
    [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
    MySQL备份方案-->(利用mysqldump以及binlog二进制日志)
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/4641551.html
Copyright © 2020-2023  润新知