【发布时间】:2010-12-20 11:00:49
【问题描述】:
我知道这个问题已经被问过几次了,但现有的解决方案看起来像是 hack,而不是正确的模式。
我有一个简单的下拉列表。我正在尝试用数据填充它并预先选择一个项目。我在“使用数据部分填充它”方面取得了成功,但未能预先选择我的首选项目。
我正在使用 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" 属性。
我用 Reflector 稍微检查了一下代码,这行 (SelectExtensions.SelectInternal) 看起来有点冒险:
item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
我在这里做错了吗?还是框架(ASP.NET MVC 3 RC2)有问题。
【问题讨论】:
标签: .net asp.net-mvc viewmodel asp.net-mvc-3