First of All很抱歉发布相同的问题,因为有很多帖子已经可用。我尝试了所有可能的方法,最后除了发布相同的问题外,我还有其他选择。
我想将枚举绑定到DROPDOWNLISTFOR,但文本以友好的方式绑定。所以在控制器中我绑定了选择列表,如
List<SelectListItem> formTypeSelectList = new List<SelectListItem>();
foreach (FormType type in ItemHelper.EnumToList<FormType>())
{
SelectListItem formTypeList = new SelectListItem();
formTypeList.Text = ItemHelper.GetEnumDescription(type);
formTypeList.Value = Convert.ToString((int)type);
formTypeList.Value = Convert.ToString((int)type);
formTypeSelectList.Add(formTypeList);
}
item.FormTypeSelectListItem = formTypeSelectList;`
我的实体已
public FormType FormType { get; set; }
public List<SelectListItem> FormTypeSelectListItem { get; set; }
public SelectList FinalSelectList
{
get
{
return new SelectList(FormTypeSelectListItem, "Value", "Text", (int)FormType);
}
}
我的观点有
<%= Html.DropDownListFor(x => x.Item.FormType, Model.Item.FinalSelectList, new { id = "ddlFormType" })%>
我甚至尝试了一些其他选项来绑定视图,例如
<%= Html.DropDownListFor(x => x.Item.FormType, new SelectListItem(Model.Item.FinalSelectList,"Value","Text",(int)Model.Item.formType)) %>
什么都行不通,当我改为HTML.DropdownList并指定了名称时,它工作得很好,但我只想用dropdownlist绑定。
我甚至尝试在视图中添加不同的id,不同的名称,如
new{id="ddlformType",name="ddlformtype")
没什么用的。有人可以帮我解决这个问题吗?
谢谢, 阿基拉
答案 0 :(得分:0)
DropDownListFor正在为它的项目寻找IEnumerable<SelectListItem>
。尝试将FormTypeSelectListItem
传递给DropDownListFor方法代替FinalSelectList
。您可能必须将模型属性强制转换为IEnumerable<SelectListItem>