在视图中动态创建对象数组

时间:2016-11-17 14:18:42

标签: asp.net asp.net-mvc entity-framework asp.net-mvc-4

我正在输出从查询中获取的数据,并在视图上放置每个输入框。

这是我的一个表格中的局部视图。

@model IEnumerable<Project.Models.VehicleTypeSeat>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
    int counter = 0;
}
<p>

</p>


    <table>
        <tr>
            <th>
                <div class="editor-field">
                    Crew
                </div>
            </th>
            <th>
                Description
            </th>

        </tr>
@{ 
    @for (var item in model)
    {
            <tr>
                <input type="hidden" name="raceSeats.index" value="@(counter)" />
                <td>
                    @Html.DropDownList(item.CrewID, null, "--Select Crew Member--", htmlAttributes: new { @class = "form-control", @name = "raceSeats["+@counter+"].PersonID" })
                </td>

                <td>
    @Html.DisplayFor(modelItem => item.VehicleTypeSeatDescription)
</td>



            </tr>
            counter += 1;
        }

    </table>
}

我正试图通过帖子来完成这种事情的阅读:

<input type="hidden" name="people.index" value="0" />
<input type="text" name="people[0].firstname" />
<input type="text" name="people[0].lastname" />

问题在于我无法操纵"DisplayFor""DropDownList"

的名称

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解这个问题,但我发现当你想绑定回模型时foreach可能会导致问题。而是尝试

@for (int i = 0; i < model.Count(); i++)
{
    // reference each item by index
    @Html.DropDownListFor(model[i].CrewID, 
       null, "--Select Crew Member--", htmlAttributes: new { @class = "form-control"})

}