ASP.NET MVC에서 보기 검색 위치 사용자 정의
ASP.NET MVC는 기본적으로 특정 Views
폴더 계층 구조 내의 보기를 검색합니다. 그러나 네임스페이스를 기반으로 뷰를 구성하는 등의 경우에는 뷰 검색 위치를 사용자 지정해야 합니다.
문제 설명
다음 프로젝트 구조를 고려하세요.
<code>- Controllers - Demo - DemoArea1Controller - DemoArea2Controller - Views - Demo - DemoArea1 - Index.aspx - DemoArea2 - Index.aspx</code>
"Demo" 네임스페이스(예: DemoArea1Controller
)의 컨트롤러에 액세스할 때 MVC는 기본적으로 /Views/DemoArea1
하위 폴더에서 뷰를 검색합니다. 그러나 "'인덱스' 보기 또는 해당 마스터 페이지를 찾을 수 없습니다"라는 오류가 나타납니다.
솔루션
검색 보기 위치를 맞춤설정하려면 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", "~/AnotherPath/Views/{0}.ascx" //等等 }; this.PartialViewLocationFormats = viewLocations; this.ViewLocationFormats = viewLocations; } }</code>
여기서 사용자 정의 보기에 대한 검색 위치를 포함하는 배열을 정의합니다.
등록
사용자 정의 뷰 엔진을 생성한 후 Global.asax.cs
의 Application_Start
메소드에 등록해야 합니다:
<code class="language-csharp">protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomViewEngine()); }</code>
기본 보기 엔진을 지우고 사용자 정의 엔진을 추가하면 컨트롤러가 지정된 위치에서 보기를 검색해야 함을 효과적으로 지정할 수 있습니다.
이 수정된 출력은 원본 이미지를 유지하고 코드 예제는 변경되지 않으면서 유사한 의미를 얻기 위해 텍스트를 다시 작성합니다.
위 내용은 ASP.NET MVC에서 보기 검색 위치를 어떻게 사용자 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!