J'essaie de créer une aide HTML personnalisée et j'aimerais savoir comment accéder à l'objet Model sans le passer en paramètre.
Merci
J'essaie de créer une aide HTML personnalisée et j'aimerais savoir comment accéder à l'objet Model sans le passer en paramètre.
Merci
Si vous utilisez des vues fortement typées, ce que vous devriez faire :
public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> htmlHelper)
{
TModel model = htmlHelper.ViewData.Model;
return MvcHtmlString.Empty;
}
Si vous n'utilisez pas de vues fortement typées, ce qui n'est pas conseillé :
public static MvcHtmlString MyHelper(this HtmlHelper htmlHelper)
{
object model = htmlHelper.ViewData.Model;
return MvcHtmlString.Empty;
}
Les aides HTML sont un mauvais moyen de générer du HTML de manière programmatique. Les formulaires Web sont bien meilleurs avec du code dans un fichier de classe de page et du balisage HTML dans un fichier séparé. Oui, les aides HTML placent une partie du code dans des fichiers de classe séparés, mais vous appelez le code depuis votre page HTML. Qu'est-ce qui vous empêche d'écrire du code directement dans votre page de vue ? MVC soutient beaucoup de mauvaises pratiques que vous n'avez pas à faire, mais pour une raison quelconque, dans les formulaires Web, les développeurs doivent faire de mauvaises pratiques parce que c'est autorisé. Si vous apprenez bien les formulaires Web, vous développerez des applications Web maintenables et évolutives en utilisant des modèles modernes orientés objet au lieu de la logique procédurale comme les aides HTML.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.