2010-01-02 86 views
7

HtmlHelper.ActionLink(htmlhelper,string linktext,string action)如何計算出正確的路由?給定htmlHelper +動作名稱,如何弄清控制器名稱?

如果我有此=>

HtmlHelper.ActionLink("Edit","Edit") 

的mvc自動找出正確的路由。

即 - 如果控制器是產品,它將使用href product/edit呈現錨點。

所以 - 當我得到htmlHelper +動作名稱組合時如何弄清控制器名稱?

回答

15

如果您的HtmlHelper看起來像:

public static string MyHelper(this HtmlHelper htmlHelper, 
          ... some more parameters ...) { 

    return ... some stuff ... 
} 
從你的助手

然後,接入:

RouteData routeData = htmlHelper.ViewContext.RouteData; 
string controller = routeData.GetRequiredString("controller"); 

的的RouteData對象包含由ASP.NET路由當前處理的所有值請求。這將包括路由中的參數名稱和值,例如「{controller}/{action}/{id}」。許多內置的ASP.NET MVC幫助程序從那裏獲取「環境」數據,以便開發人員無需爲每個使用的幫助程序輸入它們。

您也可以從這裏下載完整的源代碼,ASP.NET MVC:

  1. ASP.NET MVC 1.0 RTM source code
  2. ASP.NET MVC 2 Release Candidate source code
+0

見過/使用此之前。只是感到困惑。謝謝。 :) – 2010-01-02 01:22:40

相關問題