ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
凡事出現(xiàn)必有原因
就像Filter,它是為了解決在一類的Action之前或之后執(zhí)行統(tǒng)一的代碼而產(chǎn)生的。
而Helper則是為了方便View的開發(fā)而產(chǎn)生的。
下面我們來解決幾個(gè)問題,來看看Helper是怎么演化出來的。
起題目:如何在View中寫一個(gè)超級連接連接到主頁?
這個(gè)問題看起來很好回答:
<a href="/home/index">首頁</a>?
承其實(shí)上面這種不能稱之為方案的寫法其實(shí)是最好的,沒有調(diào)用任何的方法,僅用純的HTML就解決了問題。
但是如果Route規(guī)則改變了那怎么辦呢?就像原來的
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );改為了
routes.MapRoute( "Default", "{controller}/{action}.htm", new { controller = "Home", action = "Index" } );?
擴(kuò)展名變了,如果按上個(gè)答案那連接就要改為
<a href="/home/index.htm">首頁</a>?
如果項(xiàng)目中涉及到此Route規(guī)則的引用有很多的話,那么這么批量的改肯定會累死人的,而且還容易出錯(cuò)
那我們應(yīng)該怎么辦呢?
所以我們就要用UrlHelper
<a href="<%=Url.Action("Index","Home")%>">首頁</a> ? 這樣在Route規(guī)則變化的情況下也會得到正確的地址 ? 轉(zhuǎn)上面的方法使Url可以應(yīng)對變化,可是還有一個(gè)問題就是href=”<%=%>”這種方式在VS中是很難智能感知和調(diào)試的,所以要有一種很好的調(diào)試方式于是就產(chǎn)生了最初的HtmlHelper
<%=Html.Action("首頁","Index","Home")%>?
這樣就可以方便智能感知及調(diào)試了,而且代碼也比較干凈
?
結(jié)上述的淺見描述了為何出現(xiàn)Helper,希望新學(xué)習(xí)ASP.NET MVC的朋友有所幫助。
?
ASP.NET MVC Framework 系列
轉(zhuǎn)載于:https://blog.51cto.com/chsword/144417
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC 重点教程一周年版 第八回 Helper之演化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE与Firefox的CSS兼容大全~~
- 下一篇: Windows Hook机制(转贴一)