使用具有IEnumerable自定义类的ViewModel设置下拉列表

时间:2012-11-13 15:05:09

标签: c# asp.net-mvc razor

我已将ddl更改为使用视图模型而不是viewbag,但我收到此错误:

没有“IEnumerable”类型的ViewData项目

在我的ViewModel中:

public IEnumerable<TimeZone> TimeZones
{
   List<TimeZone> timeZones = new List<TimeZone>();
   timeZones.Add(new TimeZone { TimeZoneName = "Eastern", TimeZoneOffset = -5 });
}

我的观点:

@Html.DropDownList("timeZone", Model.TimeZones as SelectList, new { @class = "ddl" })

我的自动化

.ForMember(dest => dest.TimeZones, opt => opt.Ignore());

1 个答案:

答案 0 :(得分:1)

Model.Timezones在您的示例中属于List<TimeZone>类型。

List<TimeZone>无法转换为SelectList,因此代码Model.TimeZones as SelectList将返回null

使用new SelectList(Modle.TimeZones, "TimeZoneOffset", "TimeZoneName")

代替演员