下拉列表选择的值不适用于ViewBags

时间:2016-10-17 11:02:05

标签: c# .net razor html-helper html.dropdownlistfor

我使用从ViewBag填充的下拉列表。模型名称和ViewBag名称是不同的,我使用方案的特殊ID。

@foreach (var address in Model.CustomerAddresses){
 <div id="div_@address.Id">
   @Html.DropDownListFor(model => address.AddressType, ViewBag.AddressTypeList as IEnumerable<SelectListItem>, "Select a Type", new { @class = "form-control", id = "type_" + @address.Id })
 </div>

重新打开编辑选项的模态时,未在下拉列表中选择所选值。视图包由枚举生成。

----编辑-----

这是视图包的生成方式,

SelectList addressTypes = new SelectList(Data.GetAdressType());
ViewBag.AddressTypeList = addressTypes;

功能,

List<string> type = Enum.GetNames(typeof(WebApp.Common.Utils.Meta.Constants.AddressType)).ToList();
type.Sort();
return type;

枚举,

public enum AddressType
    {
        Permanent = 1,
        Residence = 2,
        Office = 3,
        Other = 5
    }

提前致谢

1 个答案:

答案 0 :(得分:0)

您是否尝试过强制转换列表而不是使用“as”关键字和IEnumerable接口?

(List<SelectListItem>)ViewBag.AddressTypeList

或者可能使用其他方式,例如 SelectList 类...