Emplacement de visualisation personnalisé dans ASP.NET MVC
ASP.NET MVC par défaut pour rechercher des vues dans une structure hiérarchique de dossier spécifique
. Cependant, dans certains cas, par exemple, sur la base des vues de tissu d'espace de dénomination, un emplacement de recherche sur une vue personnalisée doit être personnalisé.
Views
Description du problème
Considérez la structure du projet suivante:
Lors de l'accès au contrôleur dans l'espace de dénomination "Demo" (par exemple,
), le MVC par défaut de rechercher des vues dans le sous-dossier <code>- Controllers
- Demo
- DemoArea1Controller
- DemoArea2Controller
- Views
- Demo
- DemoArea1
- Index.aspx
- DemoArea2
- Index.aspx</code>
Copier après la connexion
. Cependant, il y aura une erreur "Je ne trouve pas la vue" index "ou sa version mère".
DemoArea1Controller
Solution /Views/DemoArea1
Afin de personnaliser l'emplacement de visualisation, il est recommandé d'étendre Classe:
Ici, vous définissez un tableau contenant une position de recherche de vue personnalisée. WebFormViewEngine
Enregistrer <code class="language-csharp">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",
"~/AnotherPath/Views/{0}.ascx"
//等等
};
this.PartialViewLocationFormats = viewLocations;
this.ViewLocationFormats = viewLocations;
}
}</code>
Copier après la connexion
Après avoir créé un moteur de vue personnalisé, il doit être enregistré dans la méthode de :
En nettoyant le moteur de vue par défaut et en ajoutant un moteur personnalisé, vous pouvez spécifier efficacement que le contrôleur doit rechercher des vues de vue à la position spécifiée. Global.asax.cs
Application_Start
Cette sortie révocée maintient l'image d'origine et reformulère le texte pour obtenir une réplication directe de sens similaire.
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!