2011-01-28 2 views
0

모델 개체와 함께 EditorFor에 대한 대리자 또는 명령 개체를 인수로 보내려고합니다. viewdata를 사용하여 보낼 수도 있지만 은 강력하게을 입력했습니다. 이 일을하는 합리적인 방법이 있습니까?복합 형 모델 MVC Editor 용?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Pair<MyModelType, TheDelegate>>" %> 

을하지만 어떻게 이와 같은 식으로 내 대리자를 추가 할 수 있습니다

내가 편집기 템플릿에서 할 수 있도록하고 싶습니다 어떤 약입니까?

답변

1

보기 모델을 수정하고 컨트롤러가 필요한 정보를 전달하지 않는 한 강력한 형식의 방식으로는이 작업을 수행 할 수 없습니다. 다음 그래서

public class MyModelTypeWithDelegate 
{ 
    public MyModelType MyModelType { get; set; } 
    public TheDelegate MyModelTypeDelegate { get; set; } 
} 

public class MyViewModel 
{ 
    public MyModelTypeWithDelegate MyModelTypeWithDelegate { get; set; } 
} 

과 :

는 다른 가능성이
<%= Html.EditorFor(m => m.MyModelTypeWithDelegate, "ThatEditor") %> 

이 그것을 같은 추가을 ViewData을 통과 할 수 있지만 강력하게 형식화되지 않습니다 : 편집기 템플릿 안에 다음

<%= Html.EditorFor(m => m.MyModelTypeField, "ThatEditor", new { TheDelegate = someDelegate }) %> 

과 :

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyModelType>" %> 
<% 
    var del = (TheDelegate)ViewData["TheDelegate"]; 
%> 
+0

나는 m => m.MyModelTypeField 표현식에있는 다른 유형의 새 인스턴스. 알려 줘서 고마워! –

관련 문제