澳门博彩官网

 更新时间:2019年01月24日 09:41:22   作者:森大科技   我要评论

这篇文章主要介绍了详解ASP.NET MVC3:Razor的@:和语法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

这是我正在写的博文系列中的另一篇,涵盖ASP.NET MVC 3的一些新功能:

本文将讨论新版Razor里视图引擎中支持的两个有用的语法功能:@:和<text>语法。

用Razor实现流畅编程

ASP.NET MVC 3配有一个新的名为“Razor”的视图引擎选项(除了已有的.aspx视图引擎)。您可以在我发表的介绍Razor的博客上了解更多关于Razor的信息,比如我们为什么要引进它以及 它所支持的语法。

Razor尽量减少编写一个视图模板需要敲入的字符数,实现快速流畅的编程工作流。与大部分模板的语法不同,你不必在HTML中为了明确地标记出澳门博彩官网端语句块的开始和结束而中断编程。Razor解析器足够聪明,能从你的代码中推断出来。这样就使得语法简洁明了,可以干净、快速和有趣地输入。

例如下面的代码片段迭代一列商品(product):

Razor用来隐式鉴别一个代码段什么时候结束的一个方法是寻找代表内容块开始的标记或元素内容。例如,在上面的代码段中Razor自动地把foreach循环里面的<li></li>模块当作一个HTML内容块,因为它看到开始的<li>标记序列并且知道这在C#中是无效的。

这个独特的技术——使用标记来识别代码中的内容块——是使Razor在涉及HTML生成的情况下简洁高效的一个重要因素。

用@明确表示内容的起始

然而不是所有的内容块都是以标记元开始,在有些案例中,Razor解析器不能隐式检测出内容块。

这就需要Razor通过在代码块中使用“@:字符序列”来显式指明内容块的开始。@:序列表明该行后面的内容应该被视为内容块:

由于我没有将消息“已售完!”嵌套在HTML标签元素内,Razor不能隐式判断@if块中的内容是否是一个内容块的开始。我们用“@:字符序列”来明确地指出我们代码段里的这行应被当作是内容块。

在@:内容块中使用代码碎块(Code Nugget)

除了输出静态内容,你也可以使代码碎块嵌入以@:字符序列开始的内容块中。

例如,在下面的代码段中我们有两个@:字符序列:

注意我们在第二个@:序列中如何发送内容块中的单品(Unit)数目的(例如“只剩下3了!”)。我们通过在内容行中嵌入一个@p.UnitsInStock代码碎块来实现。

多行内容

Razor使在HTML元素中包装多行内容变得简单。例如,下面我们的@if容器中的内容块被包装在一个HTML<p>元素中,这会使得Razor把它当作内容:

<text>标签是一个 Razor 特殊处理的元素。Razor将<text>块的内部内容视为内容块,不呈现包含那些内容的<text>标签(这意味着只呈现<text>内部内容,不呈现标签本身)。这使呈现没有被HTML元素包装的多行内容块变得方便。

如果你喜欢<text>元素胜过更简洁的@: 序列,<text>元素也能根据需要用来标识单行内容:

总结

Razor启用了一种简洁的模板语法,实现非常流畅的编码工作流。 Razor能灵活地通过检测<tag>元素来识别内容块的起始, 从而让Razor方法在有HTML生成的场景中很有效,也使你在95% 左右的 if/else 和foreach 场景中,不用明显地标注内容块的开始/结束.

在当你不想在一个代码容器块中使用HTML元素,却需要更精确地标明一个内容块的边界时,你可以使用Razor的@:和<text>语法。

希望这些会有所帮助。也希望大家多多支持脚本之家。

相关文章

  • ASP.NET缓存 方法分析和实践示例

    ASP.NET缓存 方法分析和实践示例

    说到ASP.NET缓存,那就是:尽早缓存;经常缓存您应该在应用程序的每一层都实现缓存。
    2010-10-10
  • asp.net获取HTML表单File中的路径的方法

    asp.net获取HTML表单File中的路径的方法

    这篇文章主要介绍了asp.net怎么获取HTML表单File中的路径,需要的朋友可以参考下
    2014-02-02
  • asp.net基于替换模版页的形式生成静态页的方法

    asp.net基于替换模版页的形式生成静态页的方法

    这篇文章主要介绍了asp.net基于替换模版页的形式生成静态页的方法,涉及asp.net模板的设置、变量替换、配置文件设置与读取、以及文件夹与静态文件的创建等技巧,需要的朋友可以参考下
    2016-07-07
  • ASP.NET MVC5添加验证(4)

    ASP.NET MVC5添加验证(4)

    这篇文章主要介绍了ASP.NET MVC5添加验证,需要的朋友可以参考下
    2015-09-09
  • .net中实现listBox左右移动

    .net中实现listBox左右移动

    这里给大家推荐的是一段网友分享的,使用.net实现listBox左右移动的代码,简单实用,这里记录下来,有需要的小伙伴参考下吧。
    2015-03-03
  • 详解ASP.NET页面生命周期

    详解ASP.NET页面生命周期

    这篇文章主要为大家介绍了ASP.NET页面生命周期,熟悉页面生命周期非常重要,这样我们才能在生命周期的合适阶段编写代码,需要的朋友可以参考下
    2015-12-12
  • asp.net 自制的单选、多选列表实现代码

    asp.net 自制的单选、多选列表实现代码

    在ASP.NET的页面上,ListBox最终是渲染成select元素,而CheckListBox最终被渲染成div或者是table,使得二者的样式无法统一,或者说要统一很麻烦。
    2009-08-08
  • asp.net 通用分页显示辅助类(改进版)

    asp.net 通用分页显示辅助类(改进版)

    在使用ASP.NET编程时,如果不用控件的默认分页功能,想自己搞一个,可以看看本文的asp.net通用分页显示辅助类哦。
    2010-04-04
  • .NET 扩展实现代码

    .NET 扩展实现代码

    增强.net的功能需要用到了扩展实现代码,大家可以参考下
    2008-09-09
  • asp.net网站实现接入QQ登录示例代码

    asp.net网站实现接入QQ登录示例代码

    相信大家在做开发的时候,常会遇到集成QQ登录的功能,本文主要说的是利用asp.net代码的实现方式,逻辑部分主要还是根据帮助文档来的。不懂的同学可以先看看文档。下面来一起学习学习。
    2016-08-08

最新评论