2011-06-29 10 views
2

Ok次の2つのメソッドを作成しました。最初はHtmlHelperの拡張メソッドです。 2番目のヘルパーのインスタンスが渡され、チェックボックスが作成されます。私の実際の例はチェックボックスとは関係ありませんが、これは私の問題を説明する最も簡単な方法でした。HtmlHelperインスタンスを別のメソッドに渡すRazor付き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; 

を持っていることを確認することができません。

編集:私は別の名前空間を貼り付けましたが、これはあなたが望むものである可能性が高いと思います。

関連する問題