2014-09-25 4 views
0

RenderAction을 사용하여 뷰 (A)에 부분 뷰 (B)를 렌더링하려면 모델을 A에서 B로 전달하고 AModel의 속성을 필요한 데이터로 채 웁니다. B :ASP.NET MVC RenderAction 모범 사례

Html.RenderAction("action", "controller”) 

내 질문은, 모범 사례로 간주되는 방법 :

Html.RenderAction("action", "controller", new { model = ViewData.Model }) 

또는 다만 행동과 컨트롤러를 전달하고 조치를두고 데이터가 필요 얻기를위한 책임을? 모든 데이터가 상위 모델에 있어야합니까? 아니면 부모가 데이터 요구 사항에 따라 고유 한 모델을 반환하는 부분 뷰를 사용하여 가능한 한 경량이어야합니까? 두 가지 접근 방식 모두 동등하게 수용 가능한가, 아니면 더 좋은 방법이 있습니까? 의견을 보내 주셔서 감사합니다.

+0

RenderPartial 메서드를 사용하지 않는 이유는 무엇입니까? – aleha

+0

'RenderPartial' 메서드는 일반적으로 정적 html 데이터를 보여주기 위해 사용되는 컨트롤러 액션에 부딪치지 않습니다 ... @ aleha –

+0

RenderPartial은 모델 인수를 받아 들일만큼 유효하다고 추측하지만 모범 사례에 대한 대답은 아닙니다. – jondow

답변

0

Html.RenderAction("action", "controller")으로 부분 뷰를로드하는 경우 내 의견으로는 부분 뷰에 대한 별도 모델이있는 경우 다른 뷰에서도 원하는 부분 뷰를 쉽게 사용할 수 있기 때문에 부분 뷰에 대해 별도 모델을 사용하십시오. 뷰 모델은 덜 부피가 크며 뷰 및 부분 뷰에 대해 별도의 경량 모델을 사용합니다.

+0

나는 동의하는 경향이있다. – jondow

+0

@ jondow..actually 당신의 질문은 의견을 기반으로하고 RenderPartial에 관해서는 새로운 데이터를 묶는 컨트롤러 동작이 없기 때문에 모델이 이미 바인딩 된 경우 유용하다. –