Helper 是在 View 中封裝可重用邏輯的方法群。ASP.NET MVC 雖允許在 .aspx 直接寫方法,但為支援多視圖引擎(如 NVelocity、Brail)並保持關注點分離,提供了 UrlHelper 與 HtmlHelper 兩大核心 Helper。
根據路由規則產生對應 Controller/Action 的 URL,多載如下:
public string Action(string actionName);
public string Action(string actionName, object values);
public string Action(string actionName, RouteValueDictionary valuesDictionary);
public string Action(string actionName, string controllerName);
public string Action(string actionName, string controllerName, object values);
public string Action(string actionName, string controllerName, RouteValueDictionary valuesDictionary);
<%= Url.Action("Index", "Home") %>
<!-- 輸出:/Home/Index -->
當路由規則變更時,自動反映正確 URL,極具維護性。
<%= Url.Encode("中文") %>
<!-- 等同 Server.UrlEncode -->
可使用 C# 3.0 擴充方法為 UrlHelper 新增功能。
<%= Html.ActionLink("首頁", "Index", "Home") %>
<!-- 輸出:首頁 -->
public string ActionLink(string linkText, string actionName);
public string ActionLink(string linkText, string actionName, object values);
public string ActionLink(string linkText, string actionName, RouteValueDictionary valuesDictionary);
public string ActionLink(string linkText, string actionName, string controllerName);
public string ActionLink(string linkText, string actionName, string controllerName, object values);
public string ActionLink(string linkText, string actionName, string controllerName, RouteValueDictionary valuesDictionary);
Html.TextBox、Html.TextArea、Html.DropDownList 等表單控制項Html.ValidationMessage 驗證訊息顯示Html.Partial、Html.RenderPartial 部分視圖善用 UrlHelper 與 HtmlHelper 可減少硬編碼 URL 與 HTML 字串,提升程式可讀性與維護性。路由變更時只需修改路由表,View 代碼無需異動。