73 votes

La vue doit dériver de WebViewPage ou de WebViewPage<TModel>.

Je suis Tutoriel sur l'architecture des plugins de Justin Slattery et j'essaie de l'adapter pour Razor, au lieu de WebForm Views.

Tout le reste (contrôleurs, chargement des assemblages de plugins, etc.) semble être correct. Cependant, je n'arrive pas à faire fonctionner correctement les vues Razor intégrées. Lorsque j'essaie de naviguer vers le "HelloWorld/Index", j'obtiens l'erreur suivante :

The view at '~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml' must derive from WebViewPage or WebViewPage<TModel>.

L'exception est levée par System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +262

Je peux inclure la trace complète de la pile, si nécessaire.

Quelqu'un peut-il me conseiller sur ce que je pourrais faire de mal ?

0voto

Scott Weldon Points 62

J'ai obtenu cette erreur lorsque j'ai essayé d'ajouter l'échafaudage MVC (spécifiquement l'élément Views ) à un projet d'API Web. La réponse de Darin Dimitrov dit :

il n'y a plus de ~/Views/web.config qui s'applique et vous permet de spécifier le type de base pour vos vues de rasoir

Et dans les commentaires sur cette réponse, joelnet a dit :

J'ai pu copier le web.config de ~/Views vers mon autre emplacement pour résoudre mon problème.

et Paul d'Aoust a dit :

Si vous avez des difficultés à faire fonctionner la solution proposée dans le commentaire de @joelnet, essayez de nettoyer et de reconstruire le projet.

Ces conseils m'ont aidé à trouver la solution.

J'ai d'abord copié le Web.config de la Views d'un autre projet dans la même solution vers mon nouveau Views dossier. J'ai renommé le dossier principal namespace pour qu'il corresponde au nouveau projet, et après avoir obtenu une erreur, il a supprimé une autre balise <add namespace="..." /> dont je n'avais pas besoin. J'ai ensuite déclenché un build (seulement un build normal, je n'ai pas eu besoin de nettoyer et reconstruire), et j'ai pu charger ma nouvelle vue sans erreur.

-1voto

Kelly Soares Points 99

Installez le paquet : Install-Package Microsoft.AspNet.WebPages

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