您好我正在尝试使用以下方法从我的数据库创建列表,然后在我的视图中访问它们。这就是我一直在尝试的......
var rTypeList = from r in db.Rubrics where r.DepartmentID == 2 select r;
var selectedRubrics = typeList.Select(r => r.Category);
IList <String> rubricsList = selectedRubrics.ToList();
IList<SelectListItem> iliSLI = new List<SelectListItem>();
SelectListItem selectedrubrics = new SelectListItem();
selectedrubrics.Text = "Choose An Option";
selectedrubrics.Value = "1";
selectedrubrics.Selected = true;
iliSLI.Add(selectedrubrics);
ViewData["Options"] = iliSLI;
然后在我看来,我有:@Html.DropDownList("Options")
这会启动我的列表但是如何从此列表中获取值... IList <String> rubricsList = selectedRubrics.ToList();
...并将它们添加到我的DropDown列表中?
答案 0 :(得分:1)
你几乎已经找到了问题的难点部分。
Here是一个解释......
在控制器端,您需要具有SelectListItem类型的List。我已将此列表传递给我的ViewBag.DropDownData,在这里您可以将其传递给您的模型,但我尽量保持简单。所以你将列表传递给一个视图包。
控制器代码
var myList = new List<SelectListItem>
{
new SelectListItem {Text = "Yasser", Value = "YS"},
new SelectListItem {Text = "Vaibhav", Value = "VS"},
new SelectListItem {Text = "Ramanjit", Value = "RS"}
};
ViewBag.DropDownData = myList;
现在在使用@ Html.DropDownListFor()方法的视图中,第一个参数应该是模型中声明的字符串/ int(取决于您的值),稍后将在数据发布回控制器时使用。第二个参数是我们刚准备的List,如果你使用的是模型,那么只需在这里传递你的模型。
Razor查看
@Html.DropDownListFor(m => m.ValueSelected, ViewBag.DropDownData as List<SelectListItem>)
就是这样。您的下拉列表已准备就绪:),这是我的代码的输出:
<强>输出强>
希望这有帮助。