이 질문이 열리는 방향은 실제로 엄청납니다. 많은 경로는 현재 디자인에 의해 결정됩니다.
다른 절단 및 붙여 넣기하는 동안 솔루션
당신이 웹 사이트에 대한 마스터 레이아웃에서 완전히 다른 두 페이지를 가지고 있지만, 서로 (예 : 관리 페이지) 유사하다는 것을 현재 말할 수 있습니다 또는 다른 'forseeable'페이지에 대해 동일한 레이아웃을 가질 수있는 페이지
@{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
페이지
정기적 페이지
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
을
관리자하지만 지금 당신이 말할 수 있습니다 : 각자의 용도에 각 레이아웃을 다양 화 - 그럼 나는이 페이지 레이아웃을 변경하는 것이 좋습니다/나는 /이 페이지가 메인 레이아웃과 별개이지만 약간의 정보 (예 : admin, VIP 탭)를 기반으로 조금씩 다를 필요가 있습니다. 이상하게 생각이 조금 이상해지기 때문에 컨트롤러를 결정할 것 View는 이미이 정보를 가지고 있습니다 ... 데이터는 ViewModel이나 ViewBag 또는 Session 데이터에 이상적으로 포함될 수 있습니다 - 다시 달라집니다.
By User - HTTP Context (잘라 내기 & 붙여 넣기 솔루션 ...)
<div id="specific-content">
@if (User.Identity.IsAuthenticated && User.IsInRole("admin")) <!--RoleProvider-->
{
<div>My Admin Content!</div>
<!--In your case render something (or not)!-->
@{ Html.RenderPartial(...); }
}
else
{
<div>I'm not special :(</div>
}
</div>
또는 대신 레이아웃이나 페이지에서 위의 코드를 넣는는 Partial
또한 그들의 것은 하나의 내가 생각 것을 더에 직접 넣어 그 페이지의 경우로 리디렉션하는 것입니다 사용자는 특정 사람입니다. 저는 레이아웃을 고수하고 큰 팬이 아닙니다. User
보기에서.
이것은 내가 염두에 두었던 더 간단한 아이디어입니다.
섹션과 부분이 있으십니까? 'RenderPartial'을 사용하는 이유는 개별 뷰가 부분적으로 또는 부분적으로 원하는지를 지시 할 수 있도록 컴포넌트 화하는 것입니다. 또 다른 옵션은 사이트의 나머지 부분이 그런 식으로 설계되는 경우 여러 레이아웃을 사용하는 것입니다. –
@Nate가 질문을 업데이트했습니다. 그렇기 때문에 전문가의 도움을 받아야하기 때문에 매우 간단합니다. – Kumar
개인적으로 저는이 방법이 잘못된 방식으로 접근하고 있다고 생각합니다. (오해하지 않는 한) 나는 컨트롤러가 계속해서 (사용자 지정 데이터) -보기 자체가 아니라보기에 내가 포함하고있는 것을 결정할 유일한 시간은 스타일링 또는 GUI를위한 것입니다. 나는 나중에 바쁜 atm 대답을 게시 할 것입니다. –