Razor语法学习详细记录

Razor语法

Razor 支持 c #,并使用 @ 符号从 HTML 转换为 c #。 Razor 计算 c # 表达式并在 HTML 输出中呈现。
当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记。 否则会转换为纯 C#。
若要对 @ 标记中的符号进行转义 Razor ,请使用第二个 @ 符号:

<p>@@Username</p>
<p>@Username</p>

包含电子邮件地址的 HTML 属性和内容不将 @ 符号视为转换字符。 以下示例中的电子邮件地址将通过分析来保持不变 Razor :

<a href="mailto:Support@contoso.com">Support@contoso.com</a>

隐式 Razor 表达式

隐式 Razor 表达式以开头, @ 后跟 c # 代码:

<p>@DateTime.Now</p>
<p>@DateTime.IsLeapYear(2016)</p>

隐式表达式不能包含空格,但 C# await 关键字除外。 如果该 C# 语句具有明确的结束标记,则可以混用空格:

<p>@await DoSomething("hello", "world")</p>

隐式表达式 不能 包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。 以下代码 无 效:

<p>@GenericMethod<int>()</p>

上述代码生成与以下错误之一类似的编译器错误:
“int” 元素未结束。 所有元素都必须自结束或具有匹配的结束标记。
无法将方法组 “GenericMethod” 转换为非委托类型 “object”。 是否希望调用此方法?`
泛型方法调用必须在显式 Razor 表达式或 Razor 代码块中进行包装。

显式 Razor 表达式

显式 Razor 表达式由 @ 带对称括号的符号组成。 若要呈现上周的时间,请 Razor 使用以下标记:

<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p>

将计算 @() 括号中的所有内容,并将其呈现到输出中。
前面部分中所述的隐式表达式通常不能包含空格。 在下面的代码中,不会从当前时间减去一周:

<p>Last week: @DateTime.Now - TimeSpan.FromDays(7)</p>

该代码呈现以下 HTML:

<p>Last week: 7/7/2016 4:39:52 PM - TimeSpan.FromDays(7)</p>

可以使用显式表达式将文本与表达式结果串联起来:

@{
   
    var joe = new Person("Joe", 33);
}

<p>Age@(joe
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值