我知道这已被问几次,但现有的解决方案看起来像黑客而不是一个适当的模式。Html.DropDownList中可能存在的错误,选择的值不反映?
我有一个简单的下拉列表。我正试图用数据填充它,并选择了一个项目。我在'填充数据部分'方面取得成功,但未能事先选择我的首选项目。
我正在使用ASP.NET MVC 3 RC2。
重要的代码位:
{
// Bunch of code
CategoryOptions = new SelectList(categories, "Id", "Slug", article.Category.Id);
}
现在...的CategoryOptions被传递到HTML辅助,像这样:
@Html.DropDownListFor(a => a.Category, Model.CategoryOptions)
我已经看过了值传递到帮助并且已确认其中一个项目的选定值已设置为true:
但是,它并不反映在帮助程序生成的Html中。没有任何...标签具有selected =“selected”属性。
我使用反射来检查代码了一下,这条线(SelectExtensions.SelectInternal)看起来冒险:
item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
难道我做错了什么吗?或者是框架(ASP.NET MVC 3 RC2)在这里出错。
感谢您的回答......我也发布了问题发布后我发现的答案。希望这也能帮助你。 – kidoman 2010-12-20 11:12:43