Вы пытаетесь позвонить своему обычному CheckBox()
из другого места, чем вид? Пожалуйста, не делай этого. Философия ASP.NET MVC заключается в том, что ваш контроллер должен подготовить все данные для представления, а затем представление должно решить, как его отобразить.
Если вы измените свой метод на метод расширения, вы можете сделать это:
public static class Display // class name really don't matter for extension methods
{
public static string CheckBox(this HtmlHelper html)
{
return html.CheckBox("Test");
}
}
В поле зрения:
<%= Html.CheckBox() %>
Обратите внимание, что это может вызвать конфликт имен с существующими методами расширения. Один из способов избежать этого - создать что-то вроде:
Новый код в поле зрения:
<%= Html.Display().CheckBox() %>
Новый добавочный код:
public static DisplayExtension
{
public static Display(this HtmlHelper html)
{
return new Display(html);
}
}
public class Display // no longer static
{
private readonly HtmlHelper html;
public string Display(HtmlHelper html)
{
this.html = html;
}
public string CheckBox()
{
return html.CheckBox("Test");
}
}