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中文網其他相關文章!