zsy001 发表于 2019-1-31 07:29:23

ASP.NET MVC 现在已有四种主要的视图引擎 razor,aspx,spark,nhaml

  ASP.NET MVC 现在已有四种主要的视图引擎。其他三种引擎是Spark、NHaml和传统的ASPX文件模板。本文将大致介绍这四种引擎,并着重讨论新的Razor引 擎。
  ASPX风格的视图引擎可以追溯到遥远的ASP。使 用和语法的占位符在这类风格中占据了统治地位。随着时间的推移,ASPC控件被加入进来,之后是母版页(Master Page),但这同时也带来 了昂贵的页面生命周期。
  Spark,在Castle项目的MonoRail中也使用到,其采取了稍微不同的做法。它既支持占位符,也可以用特殊的属性和标签不受限制地把HTML和代码混合在一起。它或许有些繁琐,但却拥有完全兼容 XML的优势。
  NHaml是Haml标记语言的.NET实现。这种语言根本不使用XML式的语法。借助于一种速记语法,它免去了前一种风格(xml)中大量的语法噪音,比如结束标签等。
  最新的视图引擎是微软的Razor。虽然所有的模板系统都具有一些共同特征,但 Razor却和我们前面讨论的三种视图引擎截然不同。不同于NHaml,Razor仍然使用XML标记;但又不同于Spark,Razor在使用XML代 码方面没有走得那么极端。它也不完全类似于ASPX,因为它把那些比较笨重的占位符替换成@符号接表达式或者普通的控制块。因为不需要特殊的结束标记,所 以Razor最终的代码很简练。
  默认情况下,从@表达式生成的所有文本都是HTML编 码过的【译注:从而防止XSS***】。@块里面的文本可以包含多个“HTML内容块”。当识别出任意的XML标签,Razor就会切换回HTML模式,与传统ASP开发人员使用“%> html代码
页: [1]
查看完整版本: ASP.NET MVC 现在已有四种主要的视图引擎 razor,aspx,spark,nhaml