Personnalisation des emplacements de vue dans ASP.NET MVC pour résoudre les problèmes de résolution de vue
Les projets ASP.NET MVC rencontrent parfois des problèmes de résolution de vue en raison d'emplacements de vue ne correspondant pas aux chemins de recherche par défaut. Cela entraîne souvent des erreurs telles que "La vue 'index' ou son maître est introuvable." La solution consiste à configurer des emplacements de vue personnalisés.
Par exemple, si vos contrôleurs résident dans /Controllers/Demo
et vos vues dans /Views/Demo
, vous devez indiquer au runtime MVC de rechercher dans le sous-dossier Demo
. Ceci peut être réalisé en modifiant le WebFormViewEngine
.
Création d'un moteur de vue personnalisé :
Tout d'abord, créez une classe de moteur de vue personnalisée qui étend WebFormViewEngine
:
<code class="language-csharp">public class CustomViewEngine : WebFormViewEngine { public CustomViewEngine() { var viewLocations = new[] { "~/Views/{1}/{0}.aspx", "~/Views/{1}/{0}.ascx", "~/Views/Demo/{0}.aspx", "~/Views/Demo/{0}.ascx", "~/Views/Shared/{0}.aspx", "~/Views/Shared/{0}.ascx" }; this.PartialViewLocationFormats = viewLocations; this.ViewLocationFormats = viewLocations; } }</code>
Ce code ajoute le chemin /Views/Demo
aux formats d'emplacement de vue standard. L'espace réservé {1}
représente le nom du contrôleur et {0}
représente le nom de la vue.
Enregistrement du moteur de vue personnalisée :
Ensuite, enregistrez votre moteur de vue personnalisé dans la méthode Application_Start
de votre Global.asax.cs
fichier :
<code class="language-csharp">protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomViewEngine()); // ... other application start code ... }</code>
Ceci remplace le moteur d'affichage par défaut par votre moteur personnalisé.
Cette configuration garantit que les contrôleurs de l'espace de noms « Démo » localisent correctement les vues dans le dossier de vue « Démo », résolvant les conflits de résolution de vue et maintenant une structure de projet bien organisée.
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!