63 votes

Utilisation de HtmlHelper dans un contrôleur

Est-il possible d'utiliser HtmlHelper dans un contrôleur, par exemple pour obtenir la méthode TextBox(...) ? Ce n'est pas que je ne puisse pas écrire moi-même le html qu'il génère, mais je veux juste comprendre comment cela fonctionne pour pouvoir créer la meilleure solution.

Merci d'avance !

0voto

Nicholas Petersen Points 832

Si quelqu'un essaie de faire cela sans contrôleur (comme lors d'un test unitaire), il y a d'autres problèmes à gérer, car beaucoup de ces méthodes (qui, je le sais, n'étaient pas un scénario de test, mais pour ce scénario) lançaient des exceptions Null ( ViewContext.ScopeCache ). Vous pouvez le constater par les moyens suivants (notez que tous ces moyens requièrent un ViewContext à former, qui est l'un des paramètres que vous insérez dans le constructeur de l'instance HtmlHelper, donc sur cet objet) :

viewContext.UnobtrusiveJavaScriptEnabled = false;

Le simple fait de définir cette valeur déclenche une exception avec la plupart de ces méthodes, mais le problème a été résolu pour moi. par cette réponse pour voir comment il obtient un HtmlHelper (voir aussi aquí ).

0voto

  • en utilisant System.Web.Mvc ;
  • en utilisant System.Web.Mvc.Html ;

     HtmlHelper helper = new HtmlHelper(new ViewContext(ControllerContext, new            WebFormView(ControllerContext, "Index"), new ViewDataDictionary(), new TempDataDictionary(), new System.IO.StringWriter()), new ViewPage());

Prograide.com

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.

Powered by:

X