Phi*_*ler 88 syntax asp.net-mvc markup razor asp.net-mvc-3
我注意到斯科特·格思里已经开始提剃须刀一个公平位在他的博客,但我只是不那么肯定,这是一个很适合我的风格.
对于那些习惯于"标准"类型的ASP.Net标记(内容占位符和内联代码)的人来说,这是一种相当陌生的风格,但它只是感觉要管理很多其他页面,而且对我来说标记不太清晰.
其他人的感受是什么?在构建新的MVC页面时,或者它只是试图解决不存在的问题时,您认为应该认真考虑的事情是什么?
mar*_*ind 153
[免责声明:我是MVC和Razor的微软开发人员之一,所以我可能会有点偏见:)]
我们将Razor设计为一种简洁的模板语言,仅使用最少量的控制字符.我想说,使用"传统"WebForms语法,可以使用比使用相同代码更少的字符来表达视图的大部分内容.
例如,ASPX语法中的以下代码片段:
<% if(someCondition) { %>
<ol>
<% foreach(var item in Model) { %>
<li><%: item.ToString() %></li>
<% } %>
</ol>
<% } %>
Run Code Online (Sandbox Code Playgroud)
在Razor中可以表示如下:
@if(someCondition) {
<ol>
@foreach(var item in Model) {
<li>@item.ToString()</li>
}
</ol>
}
Run Code Online (Sandbox Code Playgroud)
虽然ASPX版本有21个过渡字符(<%和%>),但Razor版本只有三个(@)
我想说Razor的优点如下:
与页面相关的概念也可以轻松地映射到ASPX中的内容
@functions { ... } 块代替 <script runat="server"> ... </script>另外Razor有许多有用的概念,我认为它们比ASPX中的更好:
@helper 用于轻松创建发出标记的函数的函数@model用于指定视图模型类型的关键字,无需编写<%@ Page ...具有完整类名的指令我想我们已经解决了一个真正的问题,即允许您更轻松地编写简洁且符合标准的视图,同时为您提供重构公共代码的方法.
当然,并非所有人都更喜欢这种语法,这也是我们完全支持ASPX视图引擎的原因.此外,您还可以查看Spark和NHaml,它们是两个享有重要社区关注的第三方视图引擎.以下博客文章对不同产品进行了很好的比较:http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx
| 归档时间: |
|
| 查看次数: |
21950 次 |
| 最近记录: |