2014-09-05 1 views
0

ViewModel 방식을 사용하지 않고보기에서 동시에 두 개의 모델을 전달할 수 있는지 알고 싶습니까?ViewModel 접근 방식을 사용하지 않고 두 모델보기 전달

+0

가능한 대답은 여기에 도움이되기를 바랍니다 [패스보기에 두 가지 모델] [1] [1] : http://stackoverflow.com/questions/ 17030399/pass-two-models-to-view –

+0

@ ZohaibAslam 저는 ViewModel 접근법으로 그 일을 할 수 있다는 것을 잘 압니다.하지만 저는 ViewModel을 사용하고 싶지 않습니다. –

+1

저는 viewmodel이 가장 좋은 방법이라고 생각합니다.하지만 일단 "튜플 (Tuple)"을 체크 아웃하면 클래스를 사용했습니다. 이 클래스는 다른 유형을 포함 할 수 있습니다. – Mairaj

답변

4

나는 당신이 Tuple<T1, T2> ...

public ActionResult Index() 
{ 
    return View(new Tuple<Foo, Bar>(new Foo(), new Bar())); 
} 

보기를 사용할 수 있습니다 같아요

@model Tuple<Foo, Bar> 

... 

<div class="container"> 
    Foo value = @Model.Item1.Value 
    <hr /> 
    Bar value = @Model.Item2.Value 
</div> 

Live Demo

+0

ViewModel을 사용하고 싶지 않다고 생각했습니다. – derape

+0

뷰 모델 클래스를 생성하고 싶지는 않지만 뷰 모델과 같은 다이내믹을 사용하지 않고 두 모델을 뷰에 전달하려고한다는 의미였습니다. –

+0

@derape 사실 누군가가 이것에 대해 물었습니다. 그래서 나는 궁금 해서요.이 방법일까요, 아니면 다른 방법이 있을까요 .. :) –

4

당신이 다음 방금 사용할 수있는 바인딩에 대해 걱정할 필요가없는 경우 ViewBag, 예

public ActionResult Index() 
{ 
    ViewBag.FirstModel = new FirstModel(); 
    ViewBag.SecondModel = new SecondModel(); 

    return View(); 
} 

모델은 ViewBag을 통해 뷰에서 사용할 수 있습니다.

0

TempData 또는 ViewData을 사용하십시오. 세션 또는 캐시를 사용할 수도 있습니다. ViewModel 방식을 선호하지만, 의도 한대로 사용합니다. 필자는 선택 목록을 채우기 위해 TempData 또는 ViewData만을 사용하는 경향이 있습니다.

관련 문제