MVC Editor для составного типа модели? - PullRequest
0 голосов
/ 28 января 2011

Я хотел бы послать делегат или объект команды в качестве аргумента в EditorFor вместе с объектом модели.Я мог бы использовать viewdata для отправки с ним, но мне бы очень хотелось, чтобы строго набрал .Есть ли какой-нибудь разумный способ сделать это?

Это примерно то, что я хотел бы сделать в шаблоне редактора:

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

Но как я могу добавить своего делегата втакое выражение, как это?

<%= Html.EditorFor(m => m.MyModelTypeField, "ThatEditor") %>

1 Ответ

1 голос
/ 28 января 2011

Вы не можете сделать это строго типизированным способом, если не измените модель представления и не попросите контроллер передать необходимую информацию.Итак,

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") %>

Другая возможность - передать его как дополнительные данные просмотра, но он не будет строго напечатан:

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

а затем внутри шаблона вашего редактора:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyModelType>" %>
<%
    var del = (TheDelegate)ViewData["TheDelegate"];
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...