问题描述
在我的 viewModel 中,我有:
公共类PersonViewModel{公共人人{得到;放;}公共 int SelectRegionId { 获取;放;}公共 IEnumerable地区{得到;放;}}
但是我必须在控制器/视图中做什么才能显示值?我现在拥有的:
控制器:
public ActionResult Create(){var 模型 = 新 ReUzze.Models.PersonViewModel{人 = 新人(),Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")};返回视图(模型);}
查看:
@Html.LabelFor(model => model.Person.Address.Region)@Html.DropDownListFor(model => model.SelectRegionId, new SelectList(Model.Regions, "Id", "Name"), "Choose...")
但它给出了这样的错误:
无法将类型System.Web.Mvc.SelectList"隐式转换为System.Collections.Generic.IEnumerable".存在显式转换(您是否缺少演员表?)
您的 ViewModel 具有IEnumerable"类型的属性,但 SelectList 不满足该类型.像这样更改您的代码:
公共类PersonViewModel{公共人人{得到;放;}公共 int SelectRegionId { 获取;放;}公共选择列表区域 { 获取;放;}}
查看:
@Html.LabelFor(model => model.Person.Address.Region)@Html.DropDownListFor(model => model.SelectRegionId, Model.Regions, "选择...")
In my viewModel I have:
public class PersonViewModel
{
public Person Person { get; set; }
public int SelectRegionId { get; set; }
public IEnumerable<SelectListItem> Regions { get; set; }
}
But what do I have to do in my Controller/View to show the values? What I have now:
Controller:
public ActionResult Create()
{
var model = new ReUzze.Models.PersonViewModel
{
Person = new Person(),
Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
};
return View(model);
}
View:
<div class="form-group">
@Html.LabelFor(model => model.Person.Address.Region)
@Html.DropDownListFor(model => model.SelectRegionId, new SelectList(Model.Regions, "Id", "Name"), "Choose... ")
</div>
But it gives an error like this:
Cannot implicitly convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.IEnumerable<System.Web.WebPages.Html.SelectListItem>'. An explicit conversion exists (are you missing a cast?)
Your ViewModel has a property of type 'IEnumerable', but SelectList does not satisfy that type. Change your code like this:
public class PersonViewModel
{
public Person Person { get; set; }
public int SelectRegionId { get; set; }
public SelectList Regions { get; set; }
}
View:
<div class="form-group">
@Html.LabelFor(model => model.Person.Address.Region)
@Html.DropDownListFor(model => model.SelectRegionId, Model.Regions, "Choose... ")
</div>
这篇关于ASP.NET MVC + 填充下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2