我觉得我正在吃疯狂的药。我有一个从我们的数据库读取所有葡萄酒生产者的视图的下拉列表。我想将selectedValue设置为推荐页面驱动的特定ID。我可以看到它在调试中选择了selectedValue,我看到填充的选定值(在本例中为906),但在页面呈现时,它不会将下拉列表设置为正确的值,对于默认值,它始终默认为1值。我已经尝试在剃刀中创建selectList,而不是我的控制器,但没有任何工作。任何帮助,这将不胜感激,我猜这是小事。MVC3 DropDownListFor不填充selectedValue
控制器:
if (User.IsInRole("admin"))
{
if (ID != 0)
{
ViewBag.ProducerSelect = new SelectList(db.Producers.OrderBy(p => p.Name), "ProducerID", "Name", ID);
}
else
{
ViewBag.ProducerSelect = new SelectList(db.Producers.OrderBy(p => p.Name), "ProducerID", "Name");
}
}
查看:
if (User.IsInRole("producereditor"))
{
<h3>@ViewBag.ProducerName</h3>
}
else
{
<div class="editor-label">
@Html.LabelFor(m => m.Wine.ProducerID, "Producer")
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.Wine.ProducerID, ViewBag.ProducerSelect as SelectList)
</div>
}
试过以下,但没有成功:
ViewBag.ProducerSelect = new SelectList(from p in db.Producers
orderby p.Name
select new { p.ProducerID, p.Name }
, "ProducerID", "Name", ID);
啊!隐藏的领域总是滋扰!!很高兴知道这一切都结束了。不要忘记投票你认为有帮助的答案 – superartsy 2012-08-13 15:46:21