Asp.net mvc 如何绑定多个下拉列表

Asp.net mvc 如何绑定多个下拉列表,asp.net-mvc,asp.net-mvc-3,jquery,razor,asp.net-mvc-viewmodel,Asp.net Mvc,Asp.net Mvc 3,Jquery,Razor,Asp.net Mvc Viewmodel,我正在动态加载带有dropdownlists的部分类。dropdownlists表示一对多关系的多个方面。一人在多个公寓登记。见下图。到目前为止,一切都在进行中。但是,当我发回表单时,我希望默认模型绑定器将所有选定值收集到viewmodel中的列表中 public class RegistrationViewModel { public RegisterModel RegistrationData { get; set; } public List<OccupierApar

我正在动态加载带有dropdownlists的部分类。dropdownlists表示一对多关系的多个方面。一人在多个公寓登记。见下图。到目前为止,一切都在进行中。但是,当我发回表单时,我希望默认模型绑定器将所有选定值收集到viewmodel中的列表中

public class RegistrationViewModel
{
    public RegisterModel RegistrationData { get; set; }
    public List<OccupierApartment> OccupierApartment { get; set; }
    public SelectList ComplexesSelectList { get; set; }
    public SelectList OccupierTypeSelectList { get; set; }        
}
公共类注册视图模型
{
公共注册表模型注册数据{get;set;}
公共列表占用分区{get;set;}
公共选择列表复合体选择列表{get;set;}
public SelectList OccupierTypeSelectList{get;set;}
}
这是我的问题:视图中dropdownlists的lambda语法是什么:类似这样,但它只获取列表中的第一项,而我需要获取所有选定的dropdownlists:@Html.DropDownListFor(m=>m.OccupierApartment[0].OccupierTypeID,Model.OccupierTypeSelectList,“--select-->”)


我建议您看一看,它演示了一个自定义HTML帮助程序,适用于向列表动态添加元素的场景。

Darin,我以前看过这篇文章。问题是我使用的是下拉列表,而不是文本框。这就是我问题的实质。使用dropdownlist时如何绑定多个选定值。我不想使用Ajax发回页面(根据您发布的链接)的另一个原因是控制器中存在重定向,这在使用Ajax post时不起作用。无论是文本框还是dropdownlist,这是相同的原则。两者都绑定到视图模型上的标量属性。对于下拉列表,您可能需要采取的唯一附加步骤是设置所选的值。但这就是问题所在-属性不是标量,而是集合:List OccupierApartment{get;set;}。我已经尝试在视图中循环DropDownList,但是我没有得到动态添加的DropDownList,尽管它们显示在页面上。可能您违反了标准约定:?查看生成的源代码并确保您尊重它。是否确定用于索引的
i
变量已递增?