Razor语法_range语法

Razor语法_range语法本章通过示例来说明常见用途下的Razor语法。1.Razor中的核心转换符号是@。这个单一字符用做标记-代码的转换字符,有时也反过来用作代码-标记的转换字符。这里共有两种基本类型的转换:代码表达式和代码块。求出表达式的值,然后将值写入到响应中。@{stringrootNamespace="MyApp";}<span>@rootNamespace.Models&…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

本章通过示例来说明常见用途下的Razor语法。

1.Razor中的核心转换符号是@。这个单一字符用做标记-代码的转换字符,有时也反过来用作代码-标记的转换字符。这里共有两种基本类型的转换:代码表达式和代码块。求出表达式的值,然后将值写入到响应中。

@{

string rootNamespace = “MyApp”;

}

<span>@rootNamespace.Models</span>

在这个示例中想要的输出结果是:

<span>MyApp.Models</span>

然而,这样会提示string没有Models属性。这种情况下,Razor是不能理解我们的意图的,Razor支持将表达式用圆括号括起来以支持显示代码表达式:

<span>@(rootNamespace).Models</span>

这样就告知了Razor,.Models是字面量文本,而不是表达式的一部分。

同时Razor支持使用@@来转义@符号,

如<p>You should follow @@aspnet</p>  输出效果为:You should follow @aspnet

2.HTML编码

因为在许多情况下都需要用视图显示用户输入,如博客评论或产品评论等,所以总是存在潜在的跨站脚本注入攻击(也称XSS,将在接下来的章节详细介绍).值得一喜的是Razor表达式是用HTML自动编码的。

如果想展示HTML标记,就返回一个System.Web.IHtmlString对象的实例,Razor并不对它进行编码。同时也可以创建一个HTMLString的实例或者使用Html.Raw便捷方法:

@{

string message = “<strong> 这是一个测试!</strong>”;

}

<span>@Html.Raw(message)</span>

效果:这是一个测试

3.代码块

Razor在视图中除了支持代码表达式以外,还支持代码块。

@foreach(var item in stuff){ <li>The name is @item.</li> }

这段代码迭代了一个数组,并为数组中的每一项显示了一个列表项元素。

4Razor语法示例

4.1.隐式代码表达式

如前所述,代码表达式将被计算并将值写入到响应中,这就是在视图中显示值得一般原理。

<span>@model.Message</span>

Razor中的隐式代码表达式总是采用HTML编码方式。

4.2显式代码表达式

代码表达式的值将被计算并写入到响应中,这就是在视图中显示值得一般原理。

<span>1+2=@(1+2)</span>

4.3无编码代码表达式

有些情况下,需要显式的渲染一些不应该采用HTML编码的值,这时可以采用html.Raw方法来保证该值不被编码。

<span>@Html.Raw(model.Message)</span>

4.4代码块

不像代码表达式先求得表达式的值,然后再输出到响应,代码块是简单地执行代码部分。这一点对于声明以后要使用到的变量是有帮助的。

@{

int x = 123;

string y = “because.”;

}

4.5文本和标记相结合

这个例子显示了在Razor中混用文本和标记的概念,具体如下:

@foreach(var item in items){

<span>Item @item.Name.</span>

}

4.6混合代码和纯文本

Razor查找标签的开始位置以确定何时将代码转换为标记。然而,有时可能想在一个代码块之后立即输出纯文本。

@if(showMessage){

<text>This is plain text</text>

}

或

@if(showMessage){

@:This is plain text.

}

Razor 可采用两种不同的方式来混合代码和纯文本。第一种是使用<text>标签,这样只是把标签内容写入到响应中,而标签本身则不写入,如果想回转标记,只需要使用一个标签就行了。第二种方式是使用一种特殊的语法,来实现从代码到纯文本的转换,但是每次只能作用于一行文本。

4.7转义代码分隔符

可以用@@来编码@以达到显示@的目的。此外始终都可以选择使用HTML编码来实现。

Razor:The ASp.net Twitter Handle is &#64;aspnet

或 The ASp.net Twitter Handle is @@64;aspnet

4.8服务器端的注释

Razor为注释一块代码和标记提供了美观的语法。

@* This is a multiline server side comment.

@if(showMessage){

<h1>@ViewBag.Message</h1>

All of this is commented out.

}

*@

4.9调用泛型方法

这与显示代码表达式基本没有什么不同。需要注意一点的是:调用泛型方法的代码包含尖括号。书写时需要用圆括号括起来。

@(Html.SomeMethod)<AType>())

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210160.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA日本免费动漫_漫画 | Java多线程与并发(一)

    JAVA日本免费动漫_漫画 | Java多线程与并发(一)1、什么是线程?2、线程和进程有什么区别?3、如何在Java中实现线程?4、Java关键字volatile与synchronized作用与区别?volatile修饰的变量不保留拷贝,直接访问主内存synchronized用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码5、有哪些不同的线程生命周期?6、你对线程优先级的理解是什么?7、什么是死锁(Deadlock)…

    2022年7月7日
  • Windows系统日志分析_windows日志命令

    Windows系统日志分析_windows日志命令这篇文章记录windows事件和日志的对应关系。

    2022年9月8日
  • STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)

    STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)一、SDIO简介SD卡(SecureDigitalMemoryCard)在我们生活中已经非常普遍了,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI接口,另外一种就是SDIO接口。SDIO全称是安全数字输入/输出接口,多媒体卡(MMC)、SD卡、SDI/O卡都有SDIO接口。MMC卡可以说是SD卡的前身,现阶段已经用得很少。STM32F10x系列控制器有一个SDIO主机接口,它可以与MMC卡、SD卡、SDI/O卡以及CE-A

    2022年10月3日
  • 学生成绩管理系统(C语言)「建议收藏」

    学生成绩管理系统(C语言)「建议收藏」思路学生成绩管理系统,首先要初始化系统,开始一个新的学生成绩系统初始化记录学生姓名,学号,院系,然后输入学生各科成绩,数学,英语,语文成绩。记录完各课成绩以后,可查看学生平均成绩和是否及格,成绩查询其中有学号查询,姓名查询,院系查询,还有全部输出,可以清晰的看到及格人数,按照分数高低排列,最后还可以添加和删除学生成绩,或者更改学生成绩,避免人为录入成绩错误。基本函数1.结构体structStudent定义一个结构体struct,结构体的关键字,students定义的结构体对象。学…

    2022年6月20日
  • DenseNet简介

    DenseNet简介论文传送门:https://arxiv.org/pdf/1608.06993.pdfCNN模型的发展十分火热,自LeNet提出以来,涌现了一批优秀的CNN模型。LeNet是CNN的开山之作,标志着CNN真正的提出。2012年AlexNet夺得ILSVRC2012的冠军,深度学习大火。之后又涌现了VGG、GoogleNet、ResNet等,其中ResNet可谓是一个里程碑式的CNN模型。本文介…

    2022年9月29日
  • 惊艳四射的意思_词语什么四射

    惊艳四射的意思_词语什么四射分享一些CSS3相关的按钮和导航,大部分素材应该都来自一些老外的设计,希望接下来的几篇文章对你会有所帮助,当然你的支持和点评也是我坚持做下去的动力。正文今天的这款CSS3按钮应该说是非常的光彩夺目,因为不仅它的色彩调得非常的和谐,更美妙的是如果你用chrome或者safari浏览器还能看到按钮发光的特效。以下是效果截图在线示例    |    源码下载这里的发光效果主要是如

    2022年10月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号