2013-04-30 2 views
3

안녕하세요 내가 생각하는 간단한 질문,MVC4 면도기 템플릿과 같은

내가 같은 cshtml이있다 : I 매개 변수에 따라 일부 콘텐츠를 표시하는 모델을 통해 매개 변수를 전달

<div id="box"> 
    @if (model.View == "item1") 
    { 
     <div id="item1"> 
      ... 
     </div> 
    } 
    else 
    { 
     <div id="item2"> 
      ... 
     </div> 
    } 
    <div id="itemDescription"> 
     ... 
    </div> 
</div> 

을, 두 가지 경우 모두 문서의 나머지 부분이 동일하기 때문입니다.

더 좋은 방법이 있나요?

감사합니다.

+0

'item1'과'item2' 각각에 너무 많은 내용이있을 경우 부분보기에 넣는 것이 좋습니다. 또한, HTML 도우미를 작성하여 표시 할 뷰를 결정하고 뷰를 빌드/호출 할 수 있습니다. –

+0

정말로 원하십니까? 어쩌면 효과가 있지만 조금은 빨아들입니다. p 추가하는 것은 꽤 고통 스러울 것입니다. – nilphilus

+0

예 각 div에 대해 부분보기를 만들었습니다. 이것은 간단한 예입니다. HtmlHelper를 만들면 매개 변수도 전달해야합니다. 그래서 내가 취한 솔루션에 비해 몇 가지 이점이 있습니까? – gonzalomelov

답변

3

아니요. 이것은 일을하는 완벽하게 좋은 방법입니다. 사업부의 ID가 항상 model.View의 값과 일치하는 경우에, 당신이 그것을 단축 수 :

<div id="box"> 
    <div id="@(model.View)"> 
     ... 
    </div> 
    <div id="itemDescription"> 
     ... 
    </div> 
</div> 

그렇지 않으면, 당신의 접근 방식은 괜찮습니다. 폰의 V의 의견에 따라, 포함 된 마크 업이 장황한 경우에는 부분적인 전망을 조사 할 수 있습니다 (또는 여러 곳에서 논리를 반복해야) :

http://www.asp.net/mvc/videos/mvc-2/how-do-i/how-do-i-work-with-data-in-aspnet-mvc-partial-views

+0

고마워! 내가 정말로 좋아하지 않는 유일한 방법은 문자열 매개 변수를 전달하고 뷰에서 비교하는 것입니다. 그러나 나는 더 좋은 해결책으로 생각할 수 없다. – gonzalomelov

+0

이것은 프리젠 테이션 논리이므로 뷰는 그것이 속한 곳이다. MVC 패러다임을 완벽하게 수용 할 수 있으며 이러한 방식으로 작업을 수행 할 수 있습니다. –

4

귀하의 접근 방식은 경우에 잘있다가 은 그 두 개가 많지 않습니다. div입니다. 그렇지 않으면 두 부분 뷰를 만들어서 깔끔하게 보관하십시오.

+0

+1 부분이 관련되어있는 경우 데이터를 전달하는 방법에 대한 깔끔한 예입니다. 나는'@HtmlRenderPartial (model.View) '처럼 단순한 무언가가 아마도 괜찮을 것이라고 제안하는 질문을 외삽 법으로 추정한다. –

+0

예 이미 부분보기가 있습니다. 내가 주석을 달았을 때, 나는 약간의 견해를 표현하기 위해 선택하는 문자열 비교법을 좋아하지 않는다. 감사! – gonzalomelov

관련 문제