Razor语法的要点

最近用Razor开发视图,总的体会是,Razor非常简洁精炼,写起来很爽。
简单总结一下Razor语法,主要是关于客户端代码和服务器端代码的灵活切换。

约定:客户端代码称C域,服务器端代码称S域

0. 基本原则
Razor模板默认是C域(与php、aspx相同)
任何C域都可以内嵌S域
行内S域不可内嵌C域,多行S域可内嵌任何C域
@符号是关键符号,使用@从C域向S域切换
使用标签从S域向多行C域切换,使用@:从S域向行内C域切换

1. 行内S域的几种形式
@变量  例如:@User.Name,变量或属性结束后自动变回C域,如遇结束判断有歧义,请加括号如下
@( 表达式 )  例如:@(i + 1) 或 @(User.Name)
@方法调用  例如:@Html.TextBox("username").ToString()

2. 多行S域的几种形式
@{ 代码块 }
@if (条件) { 代码块 }
@switch (条件) { 分支匹配代码块 }
@for (循环控制) { 代码块 }
@foreach (循环控制) { 代码块 }
@while (循环控制) { 代码块 }
@do { 代码块 } while (循环控制);

3. 行内C域的形式
@:行内文字,换行自动变回S域

4. 多行C域的几种形式
任何标签对  例如:<div>多行文字</div>
任何自闭合标签  例如:<img 多行属性 />
纯文字使用伪标签<text>  例如:<text>多行文字,两侧标签不会被输出</text>

5. 冲突解决
电子邮箱可自动识别并输出  例如:hello@hotmail.com 会以文字形式正确输出
误判的解决  例如:hello@User.Name 会误判为电子邮箱,应加括号解决,即:hello@(User.Name)
非电子邮箱,则使用@@转义输出单个@

6. 预设指令符
@model 指定视图使用的模型
@section 指示开始一个节的定义
@helper 定义一个HtmlHelper扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值