[razor] _viewstart.cshtml 및 부분 면도기 뷰를 사용하는 올바른 방법은 무엇입니까?

_viewstart.cshtml 사용 하여 동일한 Razor Layout자동으로 뷰에 할당합니다 .

내 Views 폴더의 루트에 다음과 같이 죽은 간단한 파일입니다.

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

이것은 모든 단일 뷰에 @Layout 지시문을 추가하는 것보다 더 건조합니다.

그러나 이것은 Razor 부분 뷰에 문제가 있습니다. Razor 부분 뷰는 _viewstart.cshtml의 내용을 실행하므로 레이아웃을 잘못 할당하여 더 이상 부분적이지 않습니다.

다음은 _viewstart.cshtml 파일, 공유 _layout.shtml 파일 및 부분보기 ( “AnonBar.cshtml”)를 보여주는 가상의 프로젝트입니다.

프로젝트 구조 예

현재이 문제를 해결하는 방법은 모든 부분보기에 다음 줄을 추가하는 것입니다.

@{
    Layout = "";
}

이것은 Razor에서 뷰를 부분적으로 나타내는 잘못된 방법 인 것 같습니다. (웹 양식보기 엔진과 달리 파일 확장자는 부분보기에서 동일합니다.)

내가 고려했지만 그보다 더 나쁜 다른 옵션 :

  • 모든 부분 뷰를 공통 폴더에 배치하여 공통 _viewstart.cshtml을 공유 할 수 있습니다. 이로 인해 뷰가 해당 컨트롤러와 동일한 폴더에있게됩니다.
  • 부분 뷰를 사용하지 않습니다.

이것이 Razor 뷰 엔진 팀에 의해 여전히 해결되고 있습니까? 아니면 기본 개념이 누락 되었습니까?



답변

당신이 경우 return PartialView()귀하의 컨트롤러에서 (대신 return View()), 다음 _viewstart.cshtml실행되지 않습니다.


답변