【发布时间】:2011-11-30 05:05:29
【问题描述】:
我正在尝试在视图中的下拉列表的操作方法中填充 SelectList。下拉列表可以很好地显示在视图上,但 selected 属性没有使用以下代码显示:
public ActionResult Edit(int ID)
{
var ctx = new NorthwindEntities();
var product = ctx.Products.Where(p => p.ProductID == ID).SingleOrDefault();
var selectList = new SelectList(ctx.Categories, "CategoryID", "CategoryName");
selectList.Where(s => s.Value == product.CategoryID.ToString()).SingleOrDefault().Selected = true;
ViewData["CategoryID"] = selectList;
return View(product);
}
但是,将selectedValue 参数传递给SelectList 构造函数就可以完成这项工作:
var selectList = new SelectList(ctx.Categories, "CategoryID", "CategoryName", product.CategoryID.ToString());
我的猜测是 LINQ 表达式是问题或 SelectedItem 只能在 SelectList 构造函数中指定。有什么想法吗?
【问题讨论】:
-
你是对的......使用你的第二个选项。
-
莱尼尔是对的。您有一个解决方案,可以从您的代码块中消除 1 行代码。
-
@David 感谢您的澄清。这意味着必须在完成任何计算/决策以选择所选项目后实例化 SelectList。
标签: asp.net linq asp.net-mvc-2