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

Asp.net 在视图中动态创建对象数组,asp.net,asp.net-mvc,entity-framework,asp.net-mvc-4,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>

我将输出从查询中获得的数据,并在视图中逐个放置一个输入框

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

@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>
}
@model IEnumerable
@使用PagedList.Mvc;
@{
int计数器=0;
}

全体船员 描述 @{ @对于(模型中的var项目) { @Html.DropDownList(item.CrewID,null,“--Select Crew Member--”,htmlAttributes:new{@class=“form control”,@name=“raceSeats[“+@counter+”].PersonID”}) @DisplayFor(modelItem=>item.VehicleTypeSeatDescription) 计数器+=1; } }
我正试图完成这样一件事,以博文中的数组形式阅读:

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


问题是,我在操作
“DisplayFor”
“DropDownList”
的名称时遇到问题,我不确定我是否完全理解这个问题,但我发现,当您想绑定回一个模型
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"})

}  
for(int i=0;i您应该在控制器中处理该逻辑。在您的控制器中,将数据列表分配给(例如)ViewBag.Seats,并且在您的视图中,使用常规结构显示单个模型项,该模型项使用dropdownfor(该项)并将ViewBag.Seats作为其源。是的,dropdownlist是在控制器中创建的。它是ViewBag.CrewID。但问题是,当我在上面发布这段代码时,我会查找VehicleAndCrew[]VehicleAndCrew。我无法创建动态数量的viewBag项目,因为视图无法准确地知道有多少个。我仍然不理解您的意图,但是如果您已经在控制器中创建了列表或数组,则始终可以通过(例如)传递列表计数(或array.length)你很难从给出的信息中看出你想要达到什么目的。主视图和局部视图使用什么ViewModel类?好的,我更新了问题以显示完整的局部视图。这正是我正在做的。在主视图中,我有一个创建比赛的表单(如车辆比赛)。该视图的目的是,用户做的第一件事是选择要参加比赛的车辆,然后填充一个框,该框将提供一个下拉框和一个关于座位的描述(这就是我正在努力的地方,因为我需要一个数组来绑定)。然后,当用户提交表单时,它将发布两个对象,一个Race对象和一个RaceSeats[]数组。我将在控制器上绑定它们。