标签:
我们知道,Razor语法中我们可以直接使用@if(){}等代码段,这使得.net程序员在写模版时更容易了.
对比如下:
| 语法名称 | Razor 语法 | Web Forms 等效语法 | 
| 代码块(服务端) | @{ int x = 123; string y = "test."; } | <% int x = 123; string y = "test."; %> | 
| 表达式 | encode:<p>@model.Message</p> no encode:<p> @Html.Raw(model.Message) </p> | encode:<p><%:model.Message %></p> no encode:<p><%= model.Message %></p> | 
| 结合文本和标记的循环 | @foreach(var item in items) { <p>@item.Prop</p> } | <% foreach(var item in items) { %> <p><%:item.Prop %></p> <% } %> | 
| 代码和文本混合 | @if (foo) { <text>Plain Text</text> } 
 @if (foo) { @:Plain Text is @bar } 
 | <% if (foo) { %> Plain Text <% } %> | 
| 服务器端注释 | @* This is a server side multiline comment *@ | <%-- This is a server side multiline comment --%> | 
| 调用一个方法 | @(MyClass.MyMethod<AType>()) 使用括号来明确表达是什么. | |
| 混合表达式和文本 | Hello @title. @name. | Hello <%: title %>. <%: name %>. | 
总结:从程序员的角度去看Razor语法看上去比aspx更简洁一些.
但是从一个前端的角度去看呢?
Razor语法完全看不懂,这他妈的是个毛啊!改哪呢?!而ASPX语法哪能改,哪不能改,一看就懂.
前端的工作在模版中占90%以上.而后端只占不到10%.
MVC的核心点在于前端和后端的分离,说白了,一件事分成两个人做.
从项目经理的角度看.net的MVC中Razor语法真的很垃圾.
标签:
原文地址:http://www.cnblogs.com/LucasDot/p/4461993.html