0

我有一个继承的编辑器模板 (Views/Shared/EditorTemplates/HORDER.ascx)

System.Web.Mvc.ViewUserControl<CCOK2.Models.HORDER>

我的视图模型具有一对多的关系,我使用 Html.EditorFor 来渲染多个 HORDERS

<%: Html.EditorFor(model => model.PEOPLE.HORDERS, new {fred="hello"})%>

最终我想要做的是为下拉列表传递数据,但是,目前,我只是想传递一个字符串“hello”

如果我在 HORDER.ascx 中嵌入以下内容

<%: ViewData.Count() %>

我得到“0”输出。获取视图数据的任何尝试都会失败。

但是,如果我将 EditorFor 与单个项目一起使用,它会按预期工作:我将 FirstHorder 添加到我的视图模型中,设置为 model.PEOPLE.HORDERS.First() 然后 <%: Html.EditorFor(model => model.FirstOrder, new { fred="hello"})%> 按预期传递 hello。

那么......有没有办法让 EditorFor 在以一对多关系调用它时处理其他数据?

编辑:在其他地方建议我在 ForEach 循环中使用 EditorFor 来对抗单个 HORDERS。这有效(即正确传递了额外的视图数据),但我最终得到 EditorFor 呈现的每个控件具有相同的 id 和名称,而不是 PEOPLE.HORDERS[n].field,这是不可取的。

4

1 回答 1

0

经过一番混乱之后,似乎不可能做到这一点:我认为这是框架中的一个错误。解决方法是在 EditorFor 调用之前将其插入到视图数据中。

于 2010-07-22T10:06:35.023 回答