mvc4 dynamic dropdownlistfor绑定选定的值

时间:2013-10-31 10:03:02

标签: c# asp.net-mvc-4 html-select

我正在使用MVC4,

在控制器方面我有2个List:

1> CarrierList : - 它包含运输数据列表。

2 - ; TransPortationModeList : - 它包含所选运输数据的ID&它来自数据库。

现在,在编辑模式下,我必须首先将dropdownlist与“CarrierList”记录绑定。 并且还选择此列表的属性,其中id(value)应来自“TransPortationModeList”。

我的观看代码是:

@foreach (var Data in Model.TransPortationModeList)
                {

    @Html.DropDownListFor(lm => lm.TransPortationModeList[Model.TransPortationModeList.IndexOf(Data)].TransModeId, Model.CarrierList.Select(c => new SelectListItem { Text = c.TransportationName + "-" + c.TransportationModelID, Value = c.TransportationModelID }), TransPortationModeList[Model.TransPortationModeList.IndexOf(Data)].TransModeId, new { @class = "form-control" })

}

此处: TransPortationModeList [Model.TransPortationModeList.IndexOf(Data)]。TransModeId 它为我提供了ID。

现在,通过此代码。我无法绑定选定记录的下拉列表。

请告诉我。我在这里缺少什么?

感谢。

1 个答案:

答案 0 :(得分:-1)

使用for循环可以减少冗长,因为您可以避免使用IndexOf

@for(int index = 0; index < Model.TransPortationModeList.Count; index++)
{
    @Html.DropDownListFor(lm => lm.TransPortationModeList[index].TransModeId,
                                Model.CarrierList.Select(c => new SelectListItem { Text = c.TransportationName + "-" + c.TransportationModelID, Value = c.TransportationModelID }), 
                                new { @class = "form-control" })

}

第一个参数将包含所选值。