Personnaliser la position de recherche de la vue dans ASP.NET MVC
Lors de l'organisation d'un projet MVC, il peut être nécessaire de spécifier un emplacement personnalisé pour les opérations de recherche de vues. Cela permet au contrôleur de rechercher des vues dans des sous-dossiers spécifiques pour accueillir des projets avec des structures de répertoires uniques.
Question :
Dans un projet avec la disposition suivante :
<code>/Controllers /Demo /DemoArea1Controller /DemoArea2Controller 等等... /Views /Demo /DemoArea1/Index.aspx /DemoArea2/Index.aspx</code>
Utilisez DemoArea1Controller avec le code suivant :
<code>public ActionResult Index() { return View(); }</code>
entraînera l'erreur "Afficher 'index' ou sa page maître introuvable". Par défaut, MVC recherche les vues dans :
Ce problème se produit car le contrôleur s'attend à trouver la vue Index.aspx dans ~/Views/DemoArea1, mais la vue se trouve dans ~/Views/Demo/DemoArea1/Index.aspx.
Solution :
Pour spécifier un emplacement personnalisé pour les opérations de recherche de vue, étendez la classe WebFormViewEngine :
<code>public class CustomViewEngine : WebFormViewEngine { public CustomViewEngine() { var viewLocations = new[] { "~/Views/{1}/{0}.aspx", "~/Views/{1}/{0}.ascx", "~/Views/Shared/{0}.aspx", "~/Views/Shared/{0}.ascx", "~/Demo/Views/{1}/{0}.aspx", "~/Demo/Views/{1}/{0}.ascx" }; this.PartialViewLocationFormats = viewLocations; this.ViewLocationFormats = viewLocations; } }</code>
Dans ce moteur étendu, un emplacement de recherche supplémentaire ~/Demo/Views/{1}/{0}.aspx est ajouté à la liste des emplacements de vue. Cela permet aux contrôleurs de l’espace de noms Demo de rechercher des vues dans le sous-dossier Demo Views.
N'oubliez pas d'enregistrer votre moteur de vue personnalisé dans la méthode Application_Start de Global.asax.cs :
<code>protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomViewEngine()); }</code>
En créant un moteur d'affichage personnalisé, les développeurs peuvent facilement spécifier des emplacements de recherche supplémentaires pour les vues, offrant ainsi flexibilité et organisation dans les projets ASP.NET MVC.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!