> 백엔드 개발 > C++ > 특정 하위 폴더에서 보기를 찾기 위해 ASP.NET MVC에서 보기 검색 위치를 어떻게 사용자 정의할 수 있습니까?

특정 하위 폴더에서 보기를 찾기 위해 ASP.NET MVC에서 보기 검색 위치를 어떻게 사용자 정의할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2025-01-26 00:56:10
원래의
594명이 탐색했습니다.

How Can I Customize View Search Locations in ASP.NET MVC to Find Views in Specific Subfolders?

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/ControllerName/ActionName.aspx
  • ~/Views/ControllerName/ActionName.ascx
  • ~/Views/Shared/ActionName.aspx
  • ~/Views/Shared/ActionName.ascx

이 문제는 컨트롤러가 ~/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿