2009-08-11 83 views
2

我試圖創建一個HTML助手,通過創建一個靜態類如下:HtmlHelper失蹤?

public static string Crumbs(this HtmlHelper helper, params string[] args) where T : class 
{ 
    // ... rest of code goes here. 
} 

而我調用它像這樣:

<% Html.Crumbs(
    Html.ActionLink("Home", "Index", "Home"), 
    Html.ActionLink("Lists", "Index", "User"), 
    Html.Encode(Model.List.Name)); %> 

然而,鑑於不編譯,因爲我得到以下編譯錯誤:

CS1061: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'Crumbs' and no extension method 'Crumbs' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?)

我不明白。我沒有提到你需要在任何地方註冊靜態類的名字空間。我究竟做錯了什麼?

回答

6

您需要在您的視圖或web.config中導入擴展名的命名空間。

在web.config中:

<pages> 
    <namespaces> 
     <add namespace="MyExtensions.Namespace"/> 

在你看來:

<%@ Import Namespace="MyExtensions.Namespace" %> 
+0

太好了!我喜歡這個事實,你指出了兩種可能的方式。 – 2009-08-11 13:28:47

1

您需要註冊的名稱空間在web.config中

<system.web> 
    <pages> 
     <namespaces> 
      <add namespace="X.Y.Z"/> 
     </namespaces> 
    </pages> 
</system.web> 
1

確保你把你的幫手命名空間(有)在web.config中或頁面本身(導入命名空間)引用。