MVC 3 ASPX VS RAZOR查看引擎

Sha*_*ngh 12 asp.net asp.net-mvc razor asp.net-mvc-3

嗨,我刚刚下载了MVC 3,发现了一个名为"RAZOR"的新视图引擎.它有用吗?

它提供了什么好处?

与ASPX页面有何不同?

应该在哪里使用RAZOR视图引擎?

Dar*_*rov 19

Scott Gu在他的Razor 介绍性博客文章中介绍了大部分问题:

我们一直在研究的新视图引擎选项是使用以代码为中心的模板方法围绕HTML生成进行优化的

...

  • 紧凑,富有表现力和流畅性:Razor最大限度地减少了文件中所需的字符数和击键次数,并实现了快速,流畅的编码工作流程.与大多数模板语法不同,您无需中断编码即可明确表示HTML中的服务器块.解析器非常智能,可以从代码中推断出这一点.这使得一种非常紧凑和富有表现力的语法清晰,快速且有趣.

  • 易于学习:Razor易于学习,使您能够以最少的概念快速提高工作效率.您使用所有现有的语言和HTML技能.

  • 不是一种新语言:我们有意识地选择不用Razor创建一种新的命令式语言.相反,我们希望开发人员能够将他们现有的C#/ VB(或其他)语言技能与Razor一起使用,并提供模板标记语法,使用您选择的语言实现令人敬畏的HTML构建工作流程.

  • 适用于任何文本编辑器:Razor不需要特定的工具,使您可以在任何普通的旧文本编辑器中高效工作(记事本效果很好).

  • 具有出色的智能感知功能:虽然Razor的设计不需要特定的工具或代码编辑器,但它在Visual Studio中具有很棒的语句完成支持.我们将更新Visual Studio 2010和Visual Web Developer 2010以使其具有完整的编辑器智能感知功能.

  • 单元可测试:新的视图引擎实现将支持单元测试视图的功能(无需控制器或Web服务器,并且可以托管在任何单元测试项目中 - 无需特殊的应用程序域).

  • 刚刚开始使用MVC.这只指出了Razor的一些设计特点.ASPX剃刀视图引擎的优缺点是什么? (9认同)

Aru*_*ash 8

MVC中Razor View引擎与ASPX View引擎的区别

http://royalarun.blogspot.in/2013/12/difference-between-razor-view-engine.html

ASPX View Engine是Asp.net MVC的默认视图引擎,它从一开始就包含在Asp.net MVC中.
Razor Engine是MVC3引入的高级视图引擎.这不是一种新语言,但它是一种新的标记语法.

ASPX View Engine不支持TDD(测试驱动开发)
Razor Engine支持TDD(测试驱动开发)

Visual Studio中的ASPX View Engine支持设计模式意味着您无需运行应用程序即可查看页面外观.
Razor Engine不支持visual studio中的设计模式,这意味着您无法看到设计页面的外观和感觉.

ASPX View Engine比Razor Engine更快.
与Webform Engine相比,Razor Engine有点慢.

语法 Webform使用<%和%>作为示例

< %: Html.ActionLink("SignUp", "SignUp") % >  
Run Code Online (Sandbox Code Playgroud)

Razor使用@符号作为例子

@Html.ActionLink("SignUp", "SignUp")
Run Code Online (Sandbox Code Playgroud)

ASPX View Engine不会阻止XSS攻击意味着在呈现页面时将触发保存在数据库中的任何脚本.
Razor Engine防止XSS攻击(跨站点脚本攻击)意味着它在渲染到视图之前编码脚本或html标签,如<,>.