Je souhaite utiliser la classe ViewPage/HtmlHelper dans l'espace de noms System.Web.Mvc dans un projet distinct. J'ai importé les bibliothèques pertinentes puis essayé ceci:Réutilisation de ViewPage/HtmlHelper dans un projet séparé dans ASP.NET MVC à l'aide de 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");
}
}
que j'appelle comme ça dans une autre classe qui comprend ma classe d'affichage:
string Checkbox = Display.CheckBox():
Cette compile très bien, mais quand je le lance, je reçois :
System.NullReferenceException: objet référence non définie à une instance d'un objet .
Je veux simplement utiliser les méthodes d'extension de HtmlHelper tel qu'il est, par exemple: page.Html.ActionLink(), page.Html.Radionbutton(), etc. Comment puis-je résoudre ce problème?
Je ne comprends pas votre question, qu'est-ce que tu veux dire? –
@Mr. Smith: On dirait que vous voulez partager une chose visuelle (une case à cocher) avec d'autres parties d'un site Web MVC. Ce concept n'a pas à exister dans une classe C# spécifique, et peut être mieux exprimé en plaçant cette case à cocher dans sa propre vue partielle partagée. Il peut encore être exploité par d'autres vues/contrôleurs et, mieux encore, vous aurez un accès direct aux méthodes d'assistance Html dans la vue partielle. –
Je suis parti avec l'utilisation de la classe TagBuilder à la place. J'écris une classe qui génère des balises d'entrée à la volée basé sur les colonnes dans un DataTable ou les propriétés d'une classe –