ASP.NET Core 2.0 응용 프로그램이 있는데 뷰가 뷰 외부에서 사용해야하는 레이아웃 페이지를 설정하려고합니다. 그런 식으로 모든 의견에 대해 동일한 코드를 계속 반복하지 않아도됩니다.ASP.NET 코어 - 레이아웃 외부 페이지보기
나는 생성자 내에서 그것을 설정하는 다음과 같은 기본 클래스에서 내 모든보기를 상속하여이 작업을 수행 할 수 있습니다 : 이것은 그러나 현재의 URL을 기반으로 테마 변경의 이름을 잘 작동
public class RazorPage<TModel> : Microsoft.AspNetCore.Mvc.Razor.RazorPage<TModel> {
public RazorPage() {
var theme = "Theme1;"
Layout = $"~/Areas/{theme}/Views/Shared/_Layout" + RazorViewEngine.ViewExtension;
}
}
. 현재 컨텍스트에 액세스하여이 작업을 수행 할 수 있다고 생각했지만 생성자 내에서 Context 속성을 호출하면 null이 반환됩니다.
Layout 속성을 설정할 수있는 위치를 재정의하고 현재 요청 컨텍스트에 액세스 할 수있는 적절한 방법이 표시되지 않습니다.
누군가 다른 방법을 알고 있습니까?
_ViewImports/_ViewStart 파일을 사용하여이 작업을 수행 할 수 있다는 것을 알고 있지만 내 응용 프로그램의 구조로 인해 파일이 중복되어 있어야하고 내보기에서 비즈니스 로직을 갖고 싶지 않습니다.
아마도 IViewLocationExpander로 시작하십시오. https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.razor.iviewlocationexpander?view=aspnetcore-2.0 –