2011-06-29 51 views
2

好的我創建了以下兩種方法。第一個是HtmlHelper的擴展方法。第二個獲取該幫助程序的實例並創建複選框。我的實際例子與複選框無關,這只是解釋我的問題的最簡單方法。將HtmlHelper實例傳遞給另一個帶剃刀的MVC3方法

public static MvcHtmlString MakeBoxGroup(this HtmlHelper<T> Html, List<string> names) 
{ 
    string outStr = ""; 
    foreach(string name in names) 
     outStr += MakeBox(Html, name); 

    return new MvcHtmlString(outStr); 
} 

public static MvcHtmlString MakeBox(HtmlHelper<T> Html, string name) 
{ 
    return Html.CheckBox(name); 
} 

我的問題:當我嘗試這一點,告訴我,HtmlHelper類沒有實現複選框或任何這些類型的幫手的。任何人都知道如何傳遞正確的HtmlHelper實例?我假設我只是在這裏使用了錯誤的類型,但我不確定。

+1

評論,如果你想標記下來的東西,所以我知道爲什麼你認爲這個問題不明確或沒有用處 – brandon

+0

我反了,投了你的問題,因爲它似乎是一個驅動器,通過downvote沒有理由。 –

回答

2

在這裏你可以看到.Checkbox在靜態類InputExtensions中的System.Web.Mvc.Html命名空間中。

using System.Web.Mvc.Html; 

    public static MvcHtmlString MakeBoxGroup(this HtmlHelper Html, List<string> names) 
    { 
     string outStr = "";    
     foreach (string name in names) 
      outStr += MakeBox(Html, name); 

     return new MvcHtmlString(outStr); 
    } 

    public static MvcHtmlString MakeBox(HtmlHelper Html, string name) 
    { 
     return Html.CheckBox(name); 
     OR 
     return InputExtensions.CheckBox(Html,name);   
    } 
+0

這是個問題。謝謝!我使用了InputExtensions,它工作得很好。 HtmlHelper仍然表示它沒有定義,但哦。 – brandon

+0

感謝您使用InputExtensions解決方案,我正在尋找這個解決方案! :) – huynhtuanh

0

我假設你在你的擴展類中缺少using語句。

using System.Web.Mvc.Html; 

CheckBox擴展方法在該命名空間內。 HtmlHelper本身位於System.Web.Mvc這很可能被使用。

0

既然你沒有滿級,我不能告訴如果所包含與否,但要確保你的文件會

using System.Web.Mvc.Html; 

編輯:我粘貼了一個不同的命名空間,但我認爲這更可能是你想要的。

相關問題