2009-12-15 2 views
0

내 동작은 강력한 형식의 뷰 데이터를 생성하며 내 뷰로 전달됩니다.Model을 partial으로 전달하려고 시도하면 어떻게됩니까?

뷰에서 렌더링 부분 메서드에 모델을 전달합니다. 지금보기에

public ActionResult Index() 
{ 
      ViewDataForIndex vd = new ViewDataForIndex(); 

      vd.Users = Users.GetAll(); 

      return View(vd); 
} 


public class ViewDataForIndex: ViewData 
    { 
      public IList<User> Users {get;set;} 

    } 

:

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

<% Html.RenderPartial("~/controls/blah.ascx", ViewData.Model); %> 

및 blah.ascx의 :

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
  1. 어떻게 내 모델은 지금 액세스합니까?
  2. 내 ViewUserControl에 강력한 형식의 클래스를 만들고 싶다면 어떻게해야합니까? 에서 상속?

답변

0

하나 :

<%= Model.YourProperty %> 

2 : : ViewUserControl에 대한 형식 인수 제공하십시오 ASCX 내부

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<String>" %> 
0

내가 좋아하는을 @ jfar의 두 번째 방법을 더 쉽게 수정 가능과 같이 경우 더 복잡한 모델을보기로 전달하기로 결정했습니다.

그래서 여러 속성 및/또는 더 많은 하위 개체가있는 클래스를 전달할 수 있습니다.

개체에서 지금 상속받은 경우 복잡한 개체를 상속하고 코드 하나만 변경하고 새 속성을 추가하고 완료해야합니다. 더 구체적으로 jfar의 대답에

0

:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ViewDataForIndex>" %> 

부모 페이지는 유형 ViewDataForIndex의 객체를 전달합니다 같은 ViewData.Model와 아이를 호출 입력 ViewDataForIndex의 모델이있는 경우.

+0

흠, 내가 편집 할 때 캐시 된 답변이 있어야합니다. – jfar

관련 문제