Я хочу использовать класс ViewPage/HtmlHelper в пространстве имен System.Web.Mvc в отдельном проекте. Я импортировал соответствующие библиотеки, а затем попытался это:Повторное использование ViewPage/HtmlHelper в отдельном проекте в ASP.NET MVC с использованием C#
using System.Web.Mvc;
using System.Web.Mvc.Resources;
using System.Web.Mvc.Html;
public static class Display
{
public static string CheckBox()
{
ViewPage viewPage = new ViewPage();
return viewPage.Html.CheckBox("Test");
}
}
Что я называю, как это в другой класс, который включает в свой класс отображения:
string Checkbox = Display.CheckBox():
Это компилируется нормально, но когда я запускаю его я получаю :
System.NullReferenceException: объект ссылка не указывает на экземпляр объекта .
Я просто хочу, чтобы использовать методы расширения в HtmlHelper как есть, например: page.Html.ActionLink(), page.Html.Radionbutton() и т.д. Как я могу решить эту проблему?
Я не понимаю ваш вопрос, что вы имеете в виду? –
@Mr. Смит: Похоже, вы хотите поделиться визуальной штукой (флажок) с другими частями веб-сайта MVC. Эта концепция не должна существовать в рамках определенного класса C# и может быть лучше выражена, если разместить этот флажок в своем собственном, совместном частичном представлении. Он все еще может использоваться другими видами/контроллерами, и, тем не менее, у вас будет прямой доступ к вспомогательным методам Html в частичном представлении. –
Вместо этого я пошел с использованием класса TagBuilder. Я пишу класс, который генерирует теги ввода «на лету» на основе столбцов в DataTable или свойства класса –