下拉列表选择的值与ViewBags不工作

本文关键字:ViewBags 工作 选择 下拉列表 | 更新日期: 2023-09-27 18:13:25

我使用从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>

当编辑选项的模式被重新打开时,被选中的值不会在下拉列表中被选中。view bag是从enum中生成的。

----编辑-----

这是viewbag是如何生成的,

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;
enum,

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

Thanks in advance

下拉列表选择的值与ViewBags不工作

您是否尝试过cast您的列表而不是使用"as"关键字和IEnumerable接口?

(List<SelectListItem>)ViewBag.AddressTypeList

或者使用其他方法,比如SelectList class…