ASP.NET MVC +填充下拉列表

在我的viewModel中我有:

public class PersonViewModel { public Person Person { get; set; } public int SelectRegionId { get; set; } public IEnumerable Regions { get; set; } } 

但是我在Controller / View中需要做些什么来显示值? 我现在拥有的:
控制器:

 public ActionResult Create() { var model = new ReUzze.Models.PersonViewModel { Person = new Person(), Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name") }; return View(model); } 

视图:

  
@Html.LabelFor(model => model.Person.Address.Region) @Html.DropDownListFor(model => model.SelectRegionId, new SelectList(Model.Regions, "Id", "Name"), "Choose... ")

但它给出了这样的错误:

 Cannot implicitly convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.IEnumerable'. An explicit conversion exists (are you missing a cast?) 

您的ViewModel具有“IEnumerable”类型的属性,但SelectList不满足该类型。 像这样更改你的代码:

 public class PersonViewModel { public Person Person { get; set; } public int SelectRegionId { get; set; } public SelectList Regions { get; set; } } 

视图:

 
@Html.LabelFor(model => model.Person.Address.Region) @Html.DropDownListFor(model => model.SelectRegionId, Model.Regions, "Choose... ")

您正在创建两次SelectList实例。 摆脱其中一个:

 @Html.DropDownListFor(model => model.SelectRegionId, Model.Regions, "Choose... ")