ASP.NET MVC视图搜索位置自定义指南
在ASP.NET MVC项目中,视图的默认搜索位置是Views文件夹。但是,您可能会遇到需要为特定控制器指定自定义位置来查找其对应视图的情况。
例如,假设"Demo"命名空间下的控制器需要在"Demo"子文件夹中搜索视图。解决此问题的方案是扩展默认的WebFormViewEngine并定义自定义搜索位置。
为此,创建一个名为CustomViewEngine的新类,该类继承自WebFormViewEngine:
<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", "~/Demo/Views/{0}.ascx" }; this.PartialViewLocationFormats = viewLocations; this.ViewLocationFormats = viewLocations; } }</code>
在构造函数中,定义自定义搜索位置。在此示例中,我们将"~/Demo/Views/{0}.ascx"添加到搜索位置列表中,允许"Demo"命名空间中的控制器在"Demo"子文件夹中搜索。
最后,在Global.asax.cs文件的Application_Start方法中注册自定义视图引擎:
<code class="language-csharp">protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomViewEngine()); }</code>
现在,当您使用"Demo"命名空间中的控制器时,它们将自动在默认的Views文件夹和"Demo"子文件夹中搜索视图。这使您可以逻辑地组织视图文件夹并保持一致的命名约定。
以上是如何在ASP.NET MVC中自定义查看搜索位置?的详细内容。更多信息请关注PHP中文网其他相关文章!