ASP.NET MVC에서 보기 검색 위치 사용자 정의
MVC 프로젝트를 구성할 때 보기 검색 작업을 위한 사용자 정의 위치를 지정해야 할 수도 있습니다. 이를 통해 컨트롤러는 고유한 디렉터리 구조를 가진 프로젝트를 수용하기 위해 특정 하위 폴더에서 보기를 찾을 수 있습니다.
질문:
다음 레이아웃의 프로젝트에서:
<code>/Controllers /Demo /DemoArea1Controller /DemoArea2Controller 等等... /Views /Demo /DemoArea1/Index.aspx /DemoArea2/Index.aspx</code>
다음 코드와 함께 DemoArea1Controller를 사용하세요.
<code>public ActionResult Index() { return View(); }</code>
에서는 "'인덱스' 보기 또는 해당 마스터 페이지를 찾을 수 없습니다." 오류가 발생합니다. 기본적으로 MVC는 다음에서 뷰를 검색합니다.
이 문제는 컨트롤러가 ~/Views/DemoArea1에서 Index.aspx 보기를 찾을 것으로 예상하지만 해당 보기가 ~/Views/Demo/DemoArea1/Index.aspx에 있기 때문에 발생합니다.
해결책:
보기 검색 작업을 위한 사용자 정의 위치를 지정하려면 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>
이 확장 엔진에서는 추가 검색 위치 ~/Demo/Views/{1}/{0}.aspx가 보기 위치 목록에 추가됩니다. 이를 통해 Demo 네임스페이스의 컨트롤러는 Demo views 하위 폴더에서 뷰를 찾을 수 있습니다.
Global.asax.cs의 Application_Start 메서드에 사용자 정의 보기 엔진을 등록하는 것을 잊지 마세요.
<code>protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomViewEngine()); }</code>
사용자 정의 뷰 엔진을 생성하면 개발자는 뷰에 대한 추가 검색 위치를 쉽게 지정할 수 있어 ASP.NET MVC 프로젝트에 유연성과 구성을 제공할 수 있습니다.
위 내용은 특정 하위 폴더에서 보기를 찾기 위해 ASP.NET MVC에서 보기 검색 위치를 어떻게 사용자 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!