0

光天化日之下,我似乎很纠结:

我有一个模型类

public class Pilot
{
    //.. other prop-s escaped
    private List<FlightHoursEntry> FlightHours { get; set; }
}

public class FlightHoursEntry
{
    public string Description { get; set; }

    public int Hours { get; set; }
}

视图列在下面,所有显示都正确,但是在回发时 FlightHours 属性为空,为什么引擎没有正确初始化 Pilot 的对象?

在 PilotEditView 我正在使用@Html.EditorFor(model => model.FlightHours)

FlightHoursCollectionView 是:

@model List<FlightHoursEntry>

@for (int i = 0; i < Model.Count; i++){
FlightHoursEntry fh = Model[i];
@Html.Partial("~/../FlightHoursEntryEditView.cshtml", fh);}

我也试过这种方式 @Html.EditorFor(model=>model[i], "FlightHoursEntryEditView", fh)

和简单的 FlightHoursEntryEditView

@model PumaMvc.Models.BusinessObjects.Copa.FlightHoursEntry

    <div class="editor-label">
        @Html.LabelFor(model => model.Hours)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Hours)
        @Html.ValidationMessageFor(model => model.Hours)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Description)
    </div>
    <div class="editor-field">      
        @Html.TextAreaFor(model => model.Description)           
        @Html.ValidationMessageFor(model => model.Description)
    </div>
4

2 回答 2

0

看看下面的帖子。真正帮助我理解如何实现这一点 -从视图模型中的视图返回 List<E>

于 2011-08-19T11:40:34.087 回答
0

归档被标记private。我怀疑该字段需要公开,以便 MVC ModelBinder 将传入值绑定到它。

编辑 :

如果上述方法不起作用:

另请查看:http : //haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx 关于如何将模型绑定到复杂对象列表的 Phil 博客,您需要更改FlightHoursEntry 类的编辑器,以反映那里显示的内容。i只需在最终 HTML 中呈现方括号内的值。

那里也有一个示例,但是该帖子有点过时了,并且到处都在使用 MVC2。

于 2011-08-19T11:16:30.480 回答