1. 程式人生 > >ASP.NET MVC 重點教程一週年版 第七回 UrlHelper

ASP.NET MVC 重點教程一週年版 第七回 UrlHelper

這節講 一下ASP.NET MVC中的Helper。

何謂Helper,其實就是在View中為了實現一些靈活功能而寫的方法組。

其實ASP.NET MVC的View是Aspx的頁面,本身可以宣告定義方法,那為什麼要有Helper呢?

其實無非是將介面與邏輯分離,而且Asp.net MVC也並不只支援Aspx一種View(還可以擴展出來很多),在擴充套件包中,也有Castle的NVelocity引擎和Boo,以及ViewSpark的頁面。

所以,如果在Aspx中定義方法的話會影響其擴充套件性和可移植性.而且程式碼也不太好看.

一、UrlHelper.Action

UrlHelper的Action方法 用於生成一個URL地址,它的使用方法為

當前Controller下Index這個Action <%=Url.Action(“Index”)%> index

當前Controller下Index這個Action <%=Url.Action(“Index”,new{id=1})%> index?id=1

EiceController下Index這個Action <%=Url.Action(“Index”,"Eice")%> /eice/index

EiceController下Index這個Action <%=Url.Action(“Index”,"Eice",new{id=1})%> /eice/index?id=1

例如我在View中寫Url.Action("Index","Home"),執行後則會生成/Home/Index這個地址,如果你的系統中的URL Routing規則總是變化的話這個Helper則是你必備之選.

二、UrlHelper.Encode

這也是UrlHelper的一個方法 使用方法 如<%=Url.Encode("中文")%>功能與Server.UrlEncode相同,這裡不多說了

三、UrlHelper.Content

用於伺服器路徑轉換為絕對路徑。

<%=Url.Content("~/content/site.css") %>

最後的結果為

/content/site.css 

如果你有特殊需要可以用3.0新特性,擴充套件方法來為UrlHelper來增加新的功能,下一節我們講如何使用Helper來顯示Html