程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC重點教程一周年版 第八回 Helper之演化

ASP.NET MVC重點教程一周年版 第八回 Helper之演化

編輯:關於ASP.NET

凡事出現必有原因

就像Filter,它是為了解決在一類的Action之前或之後執行統一的代碼而產生的。

而Helper則是為了方便View的開發而產生的。

下面我們來解決幾個問題,來看看Helper是怎麼演化出來的。

題目:如何在View中寫一個超級連接連接到主頁?

這個問題看起來很好回答:

<a href="/home/index">首頁</a>

其實上面這種不能稱之為方案的寫法其實是最好的,沒有調用任何的方法,僅用純的HTML就解 決了問題。

但是如果Route規則改變了那怎麼辦呢?就像原來的

routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action =  "Index", id = "" }
      );

改為了

routes.MapRoute(
        "Default",
        "{controller}/{action}.htm",
        new { controller = "Home", action = "Index"  }
      );

擴展名變了,如果按上個答案那連接就要改為

<a href="/home/index.htm">首頁</a>

如果項目中涉及到此Route規則的引用有很多的話,那麼這麼批量的改肯定會累死人的,而且還 容易出錯

那我們應該怎麼辦呢?

所以我們就要用UrlHelper

<a href="<%=Url.Action("Index","Home")% >">首頁</a>

這樣在Route規則變化的情況下也會得到正確的地址

上面的方法使Url可以應對變化,可是還有一個問題就是href=”<%=%>”這種 方式在VS中是很難智能感知和調試的,所以要有一種很好的調試方式於是就產生了最初的 HtmlHelper

<%=Html.Action("首頁","Index","Home")% >

這樣就可以方便智能感知及調試了,而且代碼也比較干淨

上述的淺見描述了為何出現Helper,希望新學習ASP.NET MVC的朋友有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved