【发布时间】:2016-11-07 09:01:55
【问题描述】:
我想根据 2 列中的值创建一个下拉列表,Id 和 Name,所以我希望它像 <option value=Id">Name</option>,而不仅仅是名称。
我可以得到这样的名字,这很好:
var result = from r in db.Categories
select r.Name;
ViewBag.Categories = result;
@Html.DropDownListFor(model => model.Name, new SelectList(ViewBag.Categories), "Select Category")
但我想同时拥有我已经说过的 id 和名称,所以我将我的 linq 更改为:
var result = from r in db.Categories
select new { r.Name, r.Id };
但我不知道如何用它制作一个带有 id 和 name 的下拉列表?
【问题讨论】:
-
ViewBag.Categories = new SelectList(db.Categories, "Id", "Name");和视图中的@Html.DropDownListFor(m => m.Name, new (SelectList)ViewBag.Categories, "Select Category") -
我在视图中的
(SelectList)下看到一条红线,表示它是一种在当前上下文中无效的类型。 -
对不起 - 删除前面的
new -
就是这样,谢谢!为什么不把这个作为答案,这对像我这样的新手很重要?另外,如果您不介意,我将如何遍历视图中的 ViewBag 以从中获取 id 和 name?
-
你是什么意思loop thru that ViewBag - 你为什么要这样做? (也可以参考this question/answer)
标签: c# asp.net-mvc linq razor