0

您好我正在尝试使用以下方法从我的数据库中创建一个列表,然后在我的视图中访问它们。这是我一直在尝试的……</p>

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();……并将它们添加到我的下拉列表中?

4

1 回答 1

1

您几乎已经弄清楚了问题的困难部分。

这里有一个解释...

在控制器端,您需要有一个 SelectListItem 类型的列表。我已将此列表传递给我的 ViewBag.DropDownData,在这里您可以将其传递给您的模型,但我试图使其尽可能简单。因此,您将列表传递给 viewbag。

控制器代码

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(取决于您的值),稍后将在数据回发到控制器时使用。第二个参数是我们刚刚准备的列表,如果您使用的是模型,那么只需在此处传递您的模型即可。

剃刀视图

@Html.DropDownListFor(m => m.ValueSelected, ViewBag.DropDownData as List<SelectListItem>)

就是这样。您的下拉菜单已准备就绪:),这是我的代码的输出:

输出

在此处输入图像描述

希望这可以帮助。

于 2013-02-19T05:52:54.433 回答