2017-03-22 77 views
0

我認爲這可能對其他人很明顯,但我不明白這些類型的方法重載的工作。 其中我們只通過的動作方法名稱。.NET中的HTML/AJAX Helper的工作MVC

這些@Html.Helpers如何獲得預期的控制器

我的猜測:

  1. HttpContext
  2. this HtmlHelper htmlHelper參數保存所有相關 請求的信息特別助手解壓。

我想創建一個自定義的助手在用戶應該通過行動方法的名稱和它神奇獲得其相應的控制器

當我在運行過程中this HtmlHelper htmlHelper檢查route-values他們向我展示了這 -

  • {控制器,首頁}
  • {動作,指數}
  • {ID,空}

當我在運行時檢查HttpContext時,它是null

預期的輸出應該是─

  • {控制器,設備}
  • {行動,推薦}
  • {ID,空}

如果有人能在幕後提供工作默認@Html.Helpers與例子將是偉大的。

UPDATE 我確實找到了我在找的東西。 這裏是link的問題及其答案

回答

1

所有HTML輔助訪問HtmlHelper類。原因是這些助手不是別的,而是HtmlHelper類的擴展方法。

public static class HelperExtensions 
{ 
    public static string ControllerName(this HtmlHelper helper) 
    { 
       string name = helper.ViewContext.Controller.GetType().Name 
       return String.Format("<span'>{0}</span>", name); 
      } 
    } 
} 

所以關於當前請求的一切都在那裏。

View.cshtml

@Html.ControllerName()