好的,我创建了以下两种方法。第一个是HtmlHelper上的扩展方法。第二个传递给助手的那个实例,然后复选框。我的实际例子与复选框无关,这只是解释我问题的最简单方法。
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类没有实现CheckBox或任何类型的帮助程序。任何人都知道如何传递正确的HtmlHelper实例?我假设我这里只是使用了错误的类型,但我不确定。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
我假设您在扩展类中缺少using语句。
using System.Web.Mvc.Html;
CheckBox
扩展方法位于该命名空间内。 HtmlHelper
本身位于可能使用的System.Web.Mvc
中。
答案 2 :(得分:0)
由于你没有全班,我不知道你是否包括它,但确保你有
using System.Web.Mvc.Html;
在您的档案中。
编辑:我粘贴了一个不同的命名空间,但我认为这更像是你想要的命名空间。