我觉得我正在服用疯狂的药丸。我有一个视图的下拉列表,它从我们的数据库中读取我们拥有的所有葡萄酒生产商。我想将 selectedValue 设置为由引用页面驱动的特定 ID。我可以看到它在调试中获取了 selectedValue,我看到填充了选定的值(本例中为 906),但是在呈现页面时它没有将下拉列表设置为正确的值,它始终默认为默认值 1价值。我尝试在 razor 中创建 selectList 而不是我的控制器,但没有任何效果。对此的任何帮助将不胜感激,我猜它很小。
控制器:
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);