将数据从控制器传递到视图

时间:2012-08-11 10:50:18

标签: asp.net-mvc-4

假设我有一个用于创建新项目的视图。项目仅包含两个属性 - 名称和组。

所以我想要一个有一个文本框和一个DropDownList的视图。我正在使用DropDownList,因为用户不能在Group字段中键入他想要的任何内容 - 已经有一些预定义的组,View应该允许用户只选择一个组。

我有ItemModel类,它有两个属性 - Name(字符串)和GroupId(int)。我的视图是对ItemModel的强类型。

我的问题如下:我应该如何传递应该作为DropDownList中的选项呈现的有效组列表?我应该为此在ItemModel中创建另一个属性,还是使用ViewBag传递它或做其他事情?

1 个答案:

答案 0 :(得分:1)

在控制器中添加:

ViewBag.MyGroups = new SelectList(db.Groups.Where(t => t.TGroupId == "1").ToList(), "MyGroups", "Description", 1);

在视图中添加:

@Html.DropDownList("MyGroups ");

基本上,制作一个新的选择列表并将其传递给ViewBag。