最新要闻
- 为亲朋好友非法牟利罪的犯罪数额有什么限制
- 硬刚苹果、高通?消息称ARM要自己搞先进芯片:进军手机、PC
- 180°可躺倒设计+活水杀菌!米家无线洗地机2图赏 焦点热门
- 理想汽车L系列喜迎4.4大版本更新:增加哨兵模式 全球速读
- 全球简讯:你觉得调休日上班效率有区别吗?
- 199元就能买到这么顶的1/6手办?|焦点精选
- 张超文会长与中国医药报社总编辑王春梅交流座谈-天天热议
- RTX 4070卖不动?NV反击:186W下性能2倍于272W功耗3070 Ti显卡-天天热头条
- 滚动:新金路(000510.SZ):提请股东大会授权董事局办理以简易程序向特定对象发行股票
- 英足总杯丨马赫雷斯“戴帽”,曼城挺进决赛|精选
- 让老外爱上“砍一刀”!拼多多Temu英国站已正式上线 天天亮点
- 每日播报!圆球停在斜坡顶端 网友称物理学不存在了 体彩中心:可能是天气原因
- 美国多个州要求召回韩国汽车:缺乏基本的防盗装置 危及公共安全
- 环球快消息!比亚迪百万豪车!仰望U8开车第一视角曝光:马路都感觉变窄了
- 蛋蛋面膜真的能去皱纹吗_蛋蛋面膜
- 亚香股份: 2022年年度报告摘要
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
ASP.NET Core MVC 从入门到精通之Razor语法 当前观点
随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启动运行,以及命名约定,创建控制器,视图,模型,接收参数,传递数据,路由,页面布局,wwwroot和客户端库等内容,今天继续讲解ASP.NET Core MVC 中Razor语法等相关内容,仅供学习分享使用。
Razor视图
在ASP.NET Core MVC项目中,默认创建的视图,都是以cshtml为后缀的Razor视图。
基于 Razor 的视图模板:
【资料图】
- 具有
.cshtml
文件扩展名。 - 提供一种巧妙的方法来使用 C# 创建 HTML 输出。
添加Razor视图
在项目中添加视图,可以通过在控制器中的Action上右键进行添加对应视图,也可以通过在Views中创建目录,然后目录上右键添加视图,如下所示:
打开添加视图对话框,选择Razor视图,点击【添加】按钮,如下所示:
输入视图名称,如Index,点击【添加】按钮,模板可根据具体需要是否添加,如下所示:
经过以上步骤后,即可添加视图成功,如下所示:
默认视图效果如下所示:
Razor介绍
Razor 是一种标记语法,用于将基于 .NET 的代码嵌入网页中。 Razor 语法由 Razor 标记、C# 和 HTML 组成。 包含 Razor 的文件通常具有.cshtml
文件扩展名。从 Razor 标记呈现 HTML 与从 HTML 文件呈现 HTML 没有什么不同。
Razor语法
Razor 支持 C#,并使用@
符号从 HTML 转换为 C#。 Razor 计算 C# 表达式,并将它们呈现在 HTML 输出中。当符号@
后跟Razor 保留关键字时,它将转换为 Razor特定于 的标记。 否则会转换为纯 HTML。不过凡事总有特例,如包含在email中的@符号将不会被当成转换字符,而是直接显示。
1 Alan.hsiang@qq.com
隐式Razor表达式
隐式 Razor 表达式以@
开头,后跟 C# 代码。
1今天是:@DateTime.Now
2昨天是:@DateTime.Now.AddDays(-1)
隐式表达式不能包含空格,但 C#await
关键字除外。 如果该 C# 语句具有明确的结束标记,则可以混用空格:
1 @{ 2 ViewData["Title"] = "Index"; 3 4 async TaskDoSomething(string left,string right) 5 { 6 return left + right; 7 8 } 9 }10 11 12 Index
13@await DoSomething("hello", "world")
隐式表达式不能包含 C# 泛型,因为括号 (<>
) 内的字符会被解释为 HTML 标记。 以下代码无效:
1 @{ 2 ViewData["Title"] = "Index"; 3 4 string? GenericMethod(T t) 5 { 6 return t?.ToString(); 7 } 8 } 9 10 11 Index
12 13@GenericMethod
(0)
注意:泛型方法调用必须包装在显式 Razor 表达式或Razor 代码块中。
显式Razor表达式
显式 Razor 表达式由@
符号和一对小括号组成,将计算@()
括号中的所有内容,并将其呈现到输出中。 若要进行一些计算,可使用以下 Razor 标记:
1 @{ 2 ViewData["Title"] = "Index"; 3 4 int a=1,b=2,c=3,d=4; 5 } 6 7 8Index
9 10@(a+b+c+d)
11 12@a+b+c+d
在上述例子中,显示Razor表达式和隐式Razor表达式在页面显示的效果是不同的,如下所示:
另外在隐式Razor表达式中,不支持泛型,在显示Razor表达式中是支持泛型的。如下所示:
1@(GenericMethod
(10))
表达式编码
通过Razor表达式进行输出时,有时并不能达到想要效果,如下所示:
1 2@("Hello World")3 4@Html.Raw("Hello World")
在页面上输出结果如下所示:
Razor代码块
Razor 代码块以@
开始,并括在{}
中。 代码块内的 C# 代码不会呈现,这点与表达式不同。 一个视图中的代码块和表达式共享相同的作用域并按顺序进行定义:
1 @{ 2 var quote = "我是公子小六"; 3 } 4 5@quote
6 7 @{ 8 quote = "小六公子是我"; 9 }10 11@quote
在页面输出 如下所示:
隐式转换
代码块中的默认语言是 C#,但 Razor 页面可以转换回 HTML:
1 @{2 var name = "我是公子小六";3Now in HTML, was in C# @name
4 }
显式行转换
要在代码块内以 HTML 形式呈现整个行的其余内容,请使用@:
语法:
1 @for (var i = 0; i < students.Length; i++)2 {3 var student = students[i];4 @:student: @student.Name5 }
如果代码中没有@:
,会生成 Razor 运行时错误。
Razor 文件中多余的@
字符可能会导致代码块中后面的语句发生编译器错误。 这些额外的@
编译器错误:
- 可能难以理解,因为实际错误发生在报告的错误之前。
- 在将多个隐式表达式和显式表达式合并到单个代码块后很常见。
控制结构
控制结构是对代码块的扩展。 代码块的各个方面(转换为标记、内联 C#)同样适用于以下结构:
条件控制语句
条件@if, else if, else,如下所示:
1 @{ 2 int value = 10; 3 } 4 5 @if (value % 2 == 0) 6 { 7The value was even.
8 } 9 else if (value >= 1337)10 {11The value is large.
12 }13 else14 {15The value is odd and small.
16 }
以下标记展示如何使用 switch 语句:
1 @switch (value) 2 { 3 case 1: 4The value is 1!
5 break; 6 case 1337: 7Your number is 1337!
8 break; 9 default:10Your number wasn"t 1 or 1337.
11 break;12 }
循环控制
循环@for, @foreach, @while, and @do while
@for循环
1 @{ 2 var students = new Student[] 3 { 4 new Student(){Id=1,Name="公"}, 5 new Student(){Id=2,Name="子"}, 6 new Student(){Id=3,Name="小"}, 7 new Student(){Id=4,Name="六"}, 8 }; 9 }10 @for (var i = 0; i < students.Length; i++)11 {12 var student = students[i];1314 Id: @student.Id15 Name: @student.Name1617 }
@foreach循环
1 @foreach (var student in students)2 {34 Id: @student.Id5 Name: @student.Name67 }
@while循环
1 @{ var i = 0; } 2 @while (i < students.Length) 3 { 4 var student = students[i]; 56 Id: @student.Id 7 Name: @student.Name 89 i++;10 }
@do while循环
1 @{ var i = 0; } 2 @do 3 { 4 var student = students[i]; 56 Id: @student.Id 7 Name: @student.Name 89 10 i++;11 } while (i < students.Length);
以上4种循环方式实现的效果都是一样的,如下所示:
异常捕获
@try, catch, finally,异常处理与 C# 类似:
1 @try 2 { 3 throw new InvalidOperationException("无效操作."); 4 } 5 catch (Exception ex) 6 { 7异常信息: @ex.Message
8 } 9 finally10 {11finally块.
12 }
在页面上输出如下内容:
Razor注释
Razor 支持 C# 和 HTML 注释:
1 @{ 2 /* C# comment */ 3 // Another C# comment 4 } 5 6 @* 7 @{ 8 /* C# comment */ 9 // Another C# comment10 }11 12 *@
在呈现网页之前,服务器会删除 Razor 注释。 Razor 使用@* *@
来分隔注释。 以上代码第3段已被注释禁止,因此服务器不呈现任何标记。
Razor保留关键字
Razor 关键字
page
namespace
functions
inherits
model
section
helper
(ASP.NET Core 当前不支持)
Razor 关键字使用@(Razor Keyword)
进行转义(例如,@(functions)
)。
C# Razor 关键字
case
do
default
for
foreach
if
else
lock
switch
try
catch
finally
using
while
C# Razor 关键字必须使用@(@C# Razor Keyword)
进行双转义(例如,@(@case)
)。 第一个@
对 Razor 分析程序转义。 第二个@
对 C# 分析器转义。
Razor 未使用的保留关键字
class
以上就是ASP.NET Core MVC 从入门到精通之Razor语法简介的主要内容,关于其他Razor语法内容,可参考文档:
参考文档:https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-7.0
关键词:
-
【财经分析】TCL科技扣非净利巨亏27亿创历史新低 比2021年下滑121亿元 全球报道
近日,TCL科技发布的2022年财报显示,公司去年实现归母净利润2 6亿元,同比下滑97 40%;扣非净利润为-26 98
来源: ASP.NET Core MVC 从入门到精通之Razor语法 当前观点
焦点速看:05 第一个c函数
为亲朋好友非法牟利罪的犯罪数额有什么限制
【财经分析】TCL科技扣非净利巨亏27亿创历史新低 比2021年下滑121亿元 全球报道
硬刚苹果、高通?消息称ARM要自己搞先进芯片:进军手机、PC
180°可躺倒设计+活水杀菌!米家无线洗地机2图赏 焦点热门
理想汽车L系列喜迎4.4大版本更新:增加哨兵模式 全球速读
全球简讯:你觉得调休日上班效率有区别吗?
提高开发生产力的4大敲门砖_当前观点
JavaScript 使用 splice 方法删除数组元素可能导致的问题
199元就能买到这么顶的1/6手办?|焦点精选
多只债券基金遭遇大额赎回 机构:债市或维持震荡格局
张超文会长与中国医药报社总编辑王春梅交流座谈-天天热议
RTX 4070卖不动?NV反击:186W下性能2倍于272W功耗3070 Ti显卡-天天热头条
热消息:Vue3 +element-plus+ wangEditor 富文本编辑器+前端七牛云上传
《Redis设计与实现》读书笔记 焦点简讯
2023年团体程序设计天梯赛 题解
环球观天下!并发编程(1)-线程与锁
前沿资讯!性能测试工具Locust和JMeter比较-及相关书籍下载
滚动:新金路(000510.SZ):提请股东大会授权董事局办理以简易程序向特定对象发行股票
英足总杯丨马赫雷斯“戴帽”,曼城挺进决赛|精选
让老外爱上“砍一刀”!拼多多Temu英国站已正式上线 天天亮点
每日播报!圆球停在斜坡顶端 网友称物理学不存在了 体彩中心:可能是天气原因
美国多个州要求召回韩国汽车:缺乏基本的防盗装置 危及公共安全
环球快消息!比亚迪百万豪车!仰望U8开车第一视角曝光:马路都感觉变窄了
蛋蛋面膜真的能去皱纹吗_蛋蛋面膜
「学习笔记」重修 FHQ-treap
Godot 4.0 设置应用程序图标、项目图标
Springboot yml配置参数加密 ,jasypt自定义解密器|当前简讯
国家能源局:截至3月底全国累计发电装机容量约26.2亿千瓦 同比增长9.1%
亚香股份: 2022年年度报告摘要
全球速读:劳斯莱斯不让进展台 小姐姐直接买了仰望U8、仰望U9两款车
【时快讯】广州街头大众CC变道不成 倒车怒撞奔驰E 网友直呼太恶劣
华为宣布开放5G网络能力 自家5.5G比5G快10倍|焦点速读
什么是期货对冲交易 全球独家
每日观点:歌词那些遗憾留在心底_心中的遗憾歌词
人机识别技术再升级,AIGC为验证码带来万亿种新变化_环球关注
从热爱到深耕,全国Top10开源软件出品人手把手教你如何做开源 微头条
当前观察:今日沈阳老凤祥黄金价格查询(2023年4月23日)
全球快播:提车时大风吹倒墙壁新车被砸 男子:4S店只修不换不退
【当前独家】抖音推出种草产品有柿App 由头条搜索升级而来
体彩开奖球停在斜坡不下滚遭质疑是什么情况
观察:厦门国际银行助力企业赴澳发行首笔“深合债”
詹姆斯:我职业生涯中和很多人有过对决 所以我不想谈狄龙 焦点快播
重返韩国!2023《英雄联盟》S13全球总决赛10月开战:赛程抢先看-全球快看
穿一次扔了都不亏!阿里工厂店大促:船袜6毛4一双起
全球报道:傅索安巴甫洛夫 傅索安怎么死的
优化数据呈现方式,分组双轴图是最佳选择|实时焦点
天天百事通!Transformer
无惧百万级并发,GaussDB(for Cassandra)让华为推送服务更快触达
使用手机在网状态查询 API 有效防止虚假注册的设计思路 全球简讯
视焦点讯!CAS的service参数验证
头条焦点:缬怎么读(缬字怎么读“缬”的读音是:[xié]【释义】)
上不上名校的区别,藏在李雪琴陈都灵的采访中,演员层次分出来了
环球简讯:奇瑞艾瑞泽STAR概念实车现身 网友:换个BBA的标 能卖百万
被泰国红牛告了 禁止生产销售!中国红牛回应:系网络水军抹黑-世界热点
【速看料】燕矶长江大桥北锚碇填芯混凝土大方量浇筑打破项目纪录
NGINX 备忘清单_开发速查表分享_时讯
孕产妇营养饮食大全 全球今头条
环球热门:雀巢丝滑拿铁咖啡15瓶到手59.8元:榛果、焦糖等多种口味
外观大变 增插混版!全新广汽本田雅阁将于5月底上市 全球快资讯
SpaceX星舰发射导流槽都没挖!马斯克:大意了 焦点短讯
4种口味任选 超划算:和路雪千层雪冰淇淋3.87元大促 _世界新要闻
有望下跌!国内油价五一节前调整 预计下调0.07元/升-微资讯
最新资讯:泡菜坛口用水密封的目的 泡菜坛口为什么要用水密封呢
华为云GaussDB支撑华为MetaERP系统全面替换
券商业绩大反攻!“券茅”获基金大幅加仓
15平方米公共绿地被居民私自硬化,路长、物业齐出手
具俊晔有孩子吗?具俊晔个人资料简介
超频冲上3.1GHz!索泰RTX 4070天启OC评测:远超公版的2K游戏最香显卡 天天新要闻
天天精选!公司要求开宝马卖车否则开除!员工回应:没人开宝马
黑猫警长一只耳的耳朵是怎么没的?黑猫警长中一只耳的娘舅是谁?
回家的诱惑宝莲身世第几集揭晓?回家的诱惑宝莲最后和谁在一起了?
张萌制片的作品有哪些?男制片人张萌简介
西海情歌的原唱是谁?西海情歌背后真实的故事
outlook怎么设置msn邮箱?outlook怎么撤回邮件?
第四范式联合创始人胡时伟:AIGC可能带来企业生产要素的变化
塞班s60v3还能用微信吗?塞班手机性能排行
三星笔记本r23plus黑屏怎么解决?三星笔记本r23plus配置
地下城与勇士刺客刷图厉害吗?地下城与勇士刺客转职什么好?
常用的 API 大全整理|全球热消息
【全球速看料】【Spring】三级缓存解决循环依赖问题
支付宝安全控件怎么升级?支付宝安全控件有什么用?
花汐与眠王12 看热讯
全球百事通!李楠评MINI冰淇淋事件:宝马公关写道歉信是真的蠢
【新要闻】专注和沉浸 是华为墨水平板赋予信息碎片化时代的“稀缺品”
第28个世界读书日你读书了吗?超8成图书被已婚人群买走:为了下一代-焦点滚动
海南部署开展道路交通安全和运输执法领域突出问题专项整治工作 每日快播
兵马俑景区“五一”门票预售啦
《安富莱嵌入式周报》第310期:集成大语言模型的开源调试器ChatDBG, 多功能开源计算器,M7内核航空航天芯片评估板, Zigbee PRO规范
世界热议:前端跨域解决方案——postMessage
不回皇马!齐达内出山,无视6000万年薪,拒联手C罗,意甲乱了
世界动态:仿真手感 全身可按:允宝充气颈部按摩仪99元新低(335元券)
【播资讯】小米13 Ultra可变光圈能晃动?小米王化科普:正常物理现象
今日上海消费券线上哪些商家可以用(上海消费如何)
微博如何查看自己评论过的动态(微博如何查看自己评论过的动态记录) 每日简讯
每日热门:超快充伤电池吗?实测:240W用了2个月 手机电池健康度依然100%
比亚迪赵长江:很多客户都是抛弃雷克萨斯LM 过来买腾势D9 天天资讯
直降200元!45mm GPS款苹果表8限时好价
朱砂供星月菩提变色8个过程图_朱砂供星月菩提 每日短讯