您好我刚刚下载了MVC 3并找到了一个名为“RAZOR”的新视图引擎。它有用吗?
它提供了哪些好处?
与ASPX页面有何不同?
应该在哪里使用RAZOR视图引擎?
答案 0 :(得分:19)
Scott Gu在他的剃刀introductory blog post中提到了你的大部分问题:
我们去过的新视图引擎选项 在HTML上优化工作 使用以代码为中心的生成 模板法
...
紧凑,富有表现力和流畅性:Razor最大限度地减少了数量 中需要的字符和击键 一个文件,并使快速,流畅 编码工作流程不像大多数模板 语法,你不需要打断 你的编码明确表示 HTML中的服务器块。该 解析器很聪明,可以推断出这一点 从你的代码。这真的可以实现 紧凑而富有表现力的语法 干净,快速,有趣的打字。
易于学习:Razor易学易用,可让您快速学习 以最少的概念进行生产。 您使用所有现有语言和 HTML技能。
不是新语言:我们有意识地选择不创建新语言 Razor的命令式语言。 相反,我们希望启用开发人员 使用他们现有的C#/ VB(或其他) Razor的语言技巧 提供模板标记语法 实现了令人敬畏的HTML构造 使用您选择的语言的工作流程。
适用于任何文本编辑器:Razor不需要特定工具 并使您能够高效工作 任何普通的旧文本编辑器(记事本 很棒)。
有很棒的智能感知:虽然Razor的设计不需要 它是一个特定的工具或代码编辑器 将有令人敬畏的声明完成 Visual Studio中的支持。我们会的 更新Visual Studio 2010和Visual Web Developer 2010拥有完整的编辑器 intellisense for it。
- 单元可测试:新的视图引擎实现将支持单元测试视图的功能(无需控制器或 web-server,可以托管在任何单元测试项目中 - 没有特别之处 需要app-domain)。
答案 1 :(得分: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使用&lt;%和%&gt; 例如
< %: Html.ActionLink("SignUp", "SignUp") % >
Razor使用@符号 例如
@Html.ActionLink("SignUp", "SignUp")
ASPX View Engine不会阻止XSS攻击意味着在呈现页面时会触发保存在数据库中的任何脚本 Razor引擎防止XSS攻击(跨站点脚本攻击)意味着它编码脚本或html标签,如&lt;,&gt;在渲染之前。
答案 2 :(得分:3)
虽然有点过时的语法:ScottGu explains most of it.
快速语法参考可在Haacked blog上找到。