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)
作者: 韩兆新
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:  [06]ASP.NET相关
标签:  Razor

本文转自韩兆新博客博客园博客,原文链接:http://www.cnblogs.com/hanzhaoxin/p/4641551.html,如需转载请自行联系原作者
目录
相关文章
|
数据可视化 安全 物联网
通义千问14B开源!内附魔搭最佳实践
9月25日,阿里云开源通义千问140亿参数模型Qwen-14B及其对话模型Qwen-14B-Chat,免费可商用。Qwen-14B在多个权威评测中超越同等规模模型,部分指标甚至接近Llama2-70B。阿里云此前开源的70亿参数模型Qwen-7B等,一个多月下载量破100万,成为开源社区的口碑之作。
|
IDE C# 开发工具
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
360 6
|
SQL 存储 安全
SQL视图实验:创建、查询与管理技巧
在数据库管理系统中,视图(View)是一个虚拟表,其内容由查询定义
|
Shell Linux 网络安全
【Python】已完美解决:(pip提示升级)WARNING: There was an error checking the latest version of pip.,
【Python】已完美解决:(pip提示升级)WARNING: There was an error checking the latest version of pip.,
2281 0
|
监控 NoSQL 算法
深入剖析Redis哨兵模式的原理和应用
Redis的哨兵模式是实现高可用性和自动故障转移的机制,当主服务器故障时,哨兵能自动检测并进行故障转移,确保服务连续和稳定性。哨兵模式通过监控主从服务器状态、自动故障转移、防止数据不一致,提高容错能力和负载均衡,降低运维成本,实现高可用性。哨兵通过检测主观下线和客观下线状态,以及选举Leader Sentinel来协调故障转移。Raft算法在其中用于领导者选举和状态一致性。哨兵模式通过综合考虑多种因素选举新主服务器并执行故障转移,保障集群稳定运行。
1264 0
深入剖析Redis哨兵模式的原理和应用
|
XML SQL Java
mybatis xml文件热加载实现
本文博主给大家带来一篇 mybatis xml 文件热加载的实现教程,自博主从事开发工作使用 Mybatis 以来,如果需要修改 xml 文件的内容,通常都需要重启项目,因为不重启的话,修改是不生效的,Mybatis 仅仅会在项目初始化的时候将 xml 文件加载进内存。
652 1
mybatis xml文件热加载实现
|
缓存 运维 Linux
Centos运维之切换国内yum镜像源
Centos运维之切换国内yum镜像源
3076 0
|
算法 计算机视觉 网络架构
论文阅读笔记 | 目标检测算法——SAPD算法
论文阅读笔记 | 目标检测算法——SAPD算法
485 0
论文阅读笔记 | 目标检测算法——SAPD算法
|
计算机视觉
MATLAB--数字图像处理 中值滤波
MATLAB--数字图像处理 中值滤波
201 0
MATLAB--数字图像处理  中值滤波