html從魔鬼拼圖到行雲流水之三


解決方䅁就是,統一語境,至少大量減少切換頻。


Asp,Net Web Form就是一個不錯的嘗試,HTML標記對象化,把不變內容HTML標記,統一到后台語境。一個個HTML標記都成為后台對象,變量填充自然在后台,以對象賦值的方式,統一的實施,跨越了語境的切換。這也是Web Form命名的含義,讓網頁像桌面一樣一致編程。應該,說微軟的這個技術方向還是比較成功的。至少,我就是在這個環境下,得進入Web行業,反過來,從后台的模型學習HTML前台DOM。
然而,Web Form的敗筆卻在架構方面,對象化HTML后,后台的處理反過來,全都以頁面為中心概念,妄圖忽略前端與后端的時間差(服務端控件?),真的把互聯網當成了本地高速網了?

ASP MVC呼之即出,從1到3,4也在測試當中,發展相當之快。雖然,是后台的架構改變,對前端的影響也是巨大的。MVC結構不能再延用Web Form了,那是雞同鴨講。

歷史總在繞圏圈,我們又回到ASP時代,用嵌入的變量拼湊HTML代碼。

<span><%=Value%></span>

從一片空白開始,重新出發。很快,微軟推出了HtmlHelper,一點一點,把碎片重新粘合起來。MVC3又推出了Razor視圖引擎,讓視圖真正成為模板,當然后面仍有一個類在支持視圖,但提供了更大的靈活性支持擴展,前文有詳敘。而且,Razor在語法上也進一步減少碎片,不用結束符,不用加尖括號,智能識別環境變化,是HTML模式還是后台模式? 所有這些是解決本文開始所描述的碎片問題,代碼碎片和思維的碎片。
完了?等等,所有這些似乎只是再為我們最后的英雄出場作准備。真正讓Html行雲流水,Fluent Html.

http://lunaverse.wordpress.com/category/ms-mvc/fluenthtml/
看看生成表格的一段代碼吧,一段代碼勝過一千張圖。

@model IEnumerable<ExamDTO>
@this.Grid(Model).Columns(c=>
{
c.For(x => x.Code).Named("代碼");
c.For(x => x.Name).Named("名稱");
c.For(x=>"刪除").Named("操作");
}).Empty("沒有記錄!")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM