2012-06-13 7 views
3

J'ai fait un projet où j'ai un DemoController de base:contrôleur ne peut pas trouver une vue

<Export(GetType(IController))> _ 
<ExportMetadata("controllerName", "Demo")> _ 
<PartCreationPolicy(CreationPolicy.NonShared)> _ 
Public Class DemoController Inherits Controller 

    Public Function Index() As ActionResult 
     Return View("~/Views/Demo/Index.aspx") 
    End Function 

End Class 

Dans mon projet « plugin » qui a ce contrôleur, il a le chemin /View/Demo/Index.aspx. Lorsque j'exécute mon application Web principale, je peux accéder à la ligne return View, mais le message indique que le fichier est introuvable.

Pourquoi cela serait-il? J'espère que tout cela est logique et désolé pour le mauvais formatage.

Je devrais probablement mentionner que mon fichier .aspx est dans un autre projet que l'application web. Je construis tout dans un DLL puis je mets ça dans un dossier dans mon projet d'application web. L'erreur que j'obtiens est "La vue '~/Views/Demo/Index.aspx' ou son maître n'a pas été trouvé ou aucun moteur de vue ne supporte les emplacements recherchés.Les emplacements suivants ont été recherchés: ~/Views/Demo/Index.aspx "

Répondre

2

Vous avez dit que vous avez toutes les vues incorporées dans un projet distinct. L'utilisation du moteur de vue intégré ne fonctionnera pas. Soit vous devez spécifier les emplacements d'affichage dans le moteur de vue intégré comme spécifié dans ce thread ou créer un custom view engine.

1
~/Demo/Index 

devrait être bonne route

En outre, s'il vous plaît fixer le retour comme ça

Return View() 

ou

Return View("Index") 
+0

Ne fonctionne toujours pas. C'est l'erreur que j'obtiens: La vue '~/Demo/Index.aspx' ou son maître n'a pas été trouvé ou aucun moteur de vue ne supporte les emplacements recherchés. Les emplacements suivants ont été recherchés: ~/Demo/Index.aspx – gblock

+0

Vous devrez avoir la structure par défaut de la solution. Exemple: vous aurez besoin du dossier "Vues" sous lequel il devrait y avoir un dossier pour chaque contrôleur, qui devrait contenir vos pages en fonction des actions, l'action Index doit avoir la page Index.aspx. Assurez-vous également de le déployer correctement en tant qu'application mvc. –

+0

Veuillez également consulter le message modifié. –

2

vous devez enregistrer les vues pour vos plugins

le flux avec asp.net mvc flow asp.net mvc

donc si vous développez des plugins avec DI vous devez garder à l'esprit quelques choses -custom Voir Engine -custom contrôleur usine

la valeur par défaut ControllerFactory ne peut pas résoudre les contrôleurs de vos plug-ins, il est la même chose avec le ViewEngine, vous devez dire au ViewEngine où est ce point de vue

est ici un exemple http://blog.maartenballiauw.be/post/2008/05/20/Creating-a-custom-ViewEngine-for-the-ASPNET-MVC-framework.aspx

Questions connexes