나는 ASP.NET MVC3
프로젝트에서 작업 중입니다. 나는 내 스타일링을 위해 Twitter Bootstrap
을 사용하고있다 (중요한지 확실하지 않다). 내가 가지고있는 문제는 Home
컨트롤러의 내 Index.cshtml
보기가 다른 페이지 (사용자가 그가 가고 싶은 곳을 선택하면 표시되지 않는 맨 위에있는 추가 이미지 탐색)와 약간 다른 레이아웃을 가지고 있지만 이것이 문제를 일으키는 것입니다. 이 부분을 Index
뷰에서 다른 부분 뷰 _ImageNavigation.cshtml
으로 옮깁니다. Home/Index.cshtml
이 열렸을 때이 부분 뷰의 내용을 렌더링하고 싶습니다. @RenderBody()
도 렌더링 전에 렌더링하고 싶습니다. 그래서 페이지를 얻을 수 있습니다. 나는 그것을 원해.주어진 뷰에서 html을 렌더링하는 방법 안녕하세요, 레이아웃의 RenderBody()가 트리거되었습니다.
는 지금 내 _Layout.cshtml
에서 내가 가진 :
<div id="main">
<div class="container-fluid">
<div class="row">
<div class="col-md-10">@RenderBody() </div>
<div class="col-md-2">
//some static content
</div>
</div>
</div>
그래서 나는이 개 아이디어가 처음이 - 바로 같은 @RenderBody()
전에 @RenderPage("~/Views/Shared/_ImageNavigation.cshtml")
를 추가 : 내가 원하는 효과를
<div class="row">
@RenderPage("~/Views/Shared/_ImageNavigation.cshtml")
<div class="col-md-10">@RenderBody() </div>
,하지만 당신로 _ImageNavigation
은 내가 원하는 것이 아닌 모든 페이지에서 렌더링됩니다. 내 Home/Index.cshtml
에 대해서만보고 싶습니다. 그래서 어떤 종류의 검사가 어떤보기가로드되고 올바르게 표시되는지 확인하기 위해 만들 수 있습니다. _ImageNavigation
. 같은 뭔가 : 물론 위의
if (LoadingView == Home/Index.cshtml)
{
@RenderPage("~/Views/Shared/_ImageNavigation.cshtml")
}
는 의사 코드가 가능하다면 나도 몰라하는 방법과 같은 검사를하는 것입니다. 또한 페이지 자체에서이를 수행 할 수있는 방법이 있는지 궁금합니다. @RenderPage("~/Views/Shared/_ImageNavigation.cshtml")
을 직접 내 Home/Index.cshtml
에 넣으려고했으나 코드가보기에 직접 작성되고 명시 적으로로드되지 않은 것처럼 페이지가 렌더링됩니다.
어쩌면 다른 방법이 있습니다. 이것은 꽤 표준적인 문제인 것 같지만 적절한 해결책을 찾지 못하는 것 같습니다.
답변 해 주셔서 감사합니다. '@if (IsSectionDefined ("Nav"))'이 오류가 발생했습니다 :'다음 섹션이 정의되었지만 레이아웃 페이지에 렌더링되지 않았습니다. ' 'RenderSection ("Nav") 만 남겨두면이 문제가 해결됩니다. 다른 페이지를 열 때 오류가 예상되었지만 정상적으로 작동합니다. 이 문제의 원인은 무엇인지 궁금하지만 각 뷰에서 'RenderSection ("Nav") 만 사용하도록 섹션을 정의 할 의무가없는 것 같습니다. – Leron
'RenderSection ("Nav", false)'를 사용할 수 있습니다. –
왜, 왜 IsSectionDefined()를 사용하는 것이 좋을지 모르겠지만, RenderSection ("Nav", false)'는 죽은 노란색 화면을 발생시키지 않는 옵션입니다. 도와 주셔서 감사합니다. – Leron