2012-08-11 230 views
1

假设我有一个用于创建新项目的视图。项目只包含两个属性 - 名称和组。将数据从控制器传递到视图

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

我有ItemModel类有两个属性 - 名称(字符串)和GroupId(INT)。我的观点强烈地键入到ItemModel。

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

+0

你从数据库表中获得组吗? – Samin 2012-08-11 10:59:22

+0

@Samin:是的。 – xx77aBs 2012-08-11 11:03:02

回答

1

在你的控制器中添加:

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

在您添加视图:

@Html.DropDownList("MyGroups "); 

基本上,做一个新selectionlist并把它传递到ViewBag。

+0

我知道可以这样做,但如果它是正确的做法(如果您考虑MVC设计模式),我会流浪吗? – xx77aBs 2012-08-11 11:16:50

相关问题