我們知道,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的核心點在于前端和後端的分離,說白了,一件事分成兩個人做.
如果你懂壓力測試,可以試試最新的MVC5.WEBFORM每秒請求達到1500左右, 而MVC5最高隻有200,MVC現階段隻适合做中小企業開發,要走的路還很長. 作為一個項目經理,一般都是自已實作MVC, 因為對我來說寫一個MVC架子并不難,隻要重寫httpFactory和httphandler就可以了.
轉載于:https://www.cnblogs.com/LucasDot/p/4461993.html