2009-05-12 2 views

답변

2

ViewData Dictionary를 사용하여 모든 객체 유형을보기에 전달할 수 있습니다. 보기에

ViewData["example"] = (YourObject)data; 

그리고 :

그냥 컨트롤러에 넣어

return View("viewname", (YourObject)data); 
:

<%= ((YourObject)ViewData["example"]).YourProperty %> 

을 그리고 당신은 당신의보기 모델로 개체를 전달하려면

보기가 다음과 같아야합니다.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YourObject>" %> 
+0

YourObject가 뷰에 모델로 이미있을 때 ViewData를 사용해야하는 이유는 무엇입니까? –

+0

나는 viewdata를 사용하여 객체를 전달할 수도 있고 뷰 모델로 직접 전달할 수도있다. 내 대답은 매우 가난했다. 나는 인정한다. – Drevak

0

페이지에 ViewModel을 사용하십시오.

당신은 예를 들어, 복잡하고 간단한 두 개체를 포함하는 뷰 모델을 사용할 수 있습니다보기이

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyComplexViewModel>" %> 

처럼 뭔가 일반 ViewPage을 상속

public class MyComplexViewModel 
{ 
    public Address UserAddress { get; set;} 
    public List<string> ValidZipCodes { get; set; } 
    public string Message { get; set; } 
} 

경우 수 다음에 보기 모델을 모델로 사용하십시오. :

<%= Html.Encode(Model.UserAddress.SomeAddressProperty) %> 
<%= Html.Encode(Model.ValidZipCodes.Count) %> 
<%= Html.Encode(Model.Message) %> 
2

뷰 모델을 만들 수 있습니다. t는 강력한 형식의보기에서 사용됩니다. 당신은 이것을 설명 할 수있는 blogpost by Stephen Walther을 확인하실 수 있습니다. 나는 viewdata에서 물건을 버리기 시작했지만 꽤 빨리 혼란스러워집니다.).

관련 문제