한 번에 99 %의 기준으로 고급 사이트를 만들고 있습니다. ~/Views/Shared/UniversalView.cshtml을 보편적 인보기에 해당하는보기가없는 모든 컨트롤러 동작을 가리키는 책임이있는 다음 코드를 작성했습니다.지정된보기없이 모든 작업을 하나의 구체적인보기로 지정
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
foreach (IViewEngine engine in ViewEngines.Engines)
{
if (engine is RazorViewEngine)
{
RazorViewEngine razorEngine = (RazorViewEngine)engine;
var locationFormats = razorEngine.ViewLocationFormats;
List<string> l = new List<string>(locationFormats);
l.Add("~/Views/Shared/UniversalView.cshtml");
razorEngine.ViewLocationFormats = l.ToArray();
}
}
}
나는 그 효과를 달성하는 훨씬 더 좋은 방법이 될 것을 확신한다. 어떤 아이디어?
답변 해 주셔서 감사합니다. 전에는 그 솔루션을 고려하고 있었지만, 한 가지 차이점을 감안할 때 컨트롤러 클래스를 상속하고 View 메서드를 재정의 할 생각을하고 컨트롤러 복잡성의 원인이 두렵게되었습니다. IMHO는 좋은 해결책이지만 프로그래머가 사용자 지정 컨트롤러 클래스에서 파생 된 것을 기억해야하므로 결과를 유지하기가 어려울 수 있습니다. – MaciejLisCK