2010-11-09 11 views
1

J'ai un assez grand projet ASP.NET MVC 2 qui a les contrôleurs séparés dans un autre projet. Je voudrais créer une vue dans une vue parente. J'ai ParentController et ChildController, tous deux héritant de "Controller". Je voudrais créer un dossier appelé "ChildController" dans "ParentController" et ajouter des vues à partir de là.Création d'une vue dans une vue

Évidemment, cela génère une erreur "La ressource n'a pas pu être trouvée".

Dois-je modifier les contrôleurs? Est-ce une limitation de routage?

(Comment) cela peut-il être réalisé?

Répondre

0

Par défaut, les vues sont vérifiées dans le dossier Views/{ControllerPrefix}. Puis dans le dossier Views/Shared.

Votre dossier doit correspondre Prefix du contrôleur, à savoir:

ChildController 

va tirer des vues de

/views/child/ 

Vous pouvez également référencer directement la vue à partir de son chemin d'application de tout contrôleur:

~/views/child/subview.ascx 
0

Je ne suis pas sûr de comprendre ce que vous demandez, mais la création de chemins de recherche d'affichage personnalisés est effectuée en écrivant une classe personnalisée ViewEngine. Mais avoir plusieurs contrôleurs (peu importe comment ils sont hérités) devrait toujours être un dossier par contrôleur dans le dossier Views. Je suppose que vous utilisez Html.RenderAction méthode. Ça n'a pas vraiment d'importance. Votre structure de dossiers View doit toujours être:

/Views 
    /Parent 
    /Index.aspx 
    /Whatever.aspx 
    /Child 
    /SubView.ascx <- this one here is a partial view if you use RenderAction()