在视图中传递模型列表时的MVC下拉列表

时间:2014-05-20 08:02:37

标签: asp.net-mvc html.dropdownlistfor

我有一个模型,其中有一个变量

public IEnumerable<string> MonthDropDown { get; set; }

在控制器中,我将其填写为:

var months = "Jan,Feb,March,April,May,June,July,Aug,Sept,Oct,Nov,Dec";
            ImportFiles inputfile = new AetnaCoventryMigration.Model.ImportFiles();
            inputfile.MonthDropDown = months.Split(',');

在视图中,我将myModel列表作为模型传递,如何为此月份列表创建一个下拉框?问题是我无法使用m => m.MonthDropDown,因为我的模型在视图中是我的模型类的列表。

请帮忙!

我也在后面的视图中使用模型列表,因此无法仅将模型传递给视图,我将Ilist<model>传递给视图。

1 个答案:

答案 0 :(得分:2)

这里有两件事:

首先要在视图中编辑模型列表,您可以使用Steven Sanderson的MVC2方式:Editing a variable length list, ASP.NET MVC 2-style

第二次以实现下拉菜单:您可以执行以下操作:

                @Html.DropDownListFor(m => m.Month,
 ((List<string>)ViewBag.MonthDropDown).Select(option => new SelectListItem
 {
     Text = Html.DisplayTextFor(_ => option).ToString(),
     Value = option,
     Selected = (Model != null) && (option == Model.Month)
 }))

在控制器中,在ViewBag中填充Month值:

var months = "Jan,Feb,March,April,May,June,July,Aug,Sept,Oct,Nov,Dec";   
ViewBag.MonthDropDown = months.Split(',');