我有一个需要选择州和国家/地区的注册页面。填充这些下拉列表的项目来自外部数据库。
如何在页面呈现之前调用来填充这些列表?
public class RegisterModel
{
...
public IEnumerable<SelectListItem> States {get;set;}
public IEnumerable<SelectListItem> Countries {get;set;}
...
}
//Register.cshtml
@model Adw.Web.Models.RegisterModel
@Html.LabelFor(m => m.State)
@Html.DropDownListFor(m =>m.State, new SelectList(Model.States))
//Controller
public ActionResult Register()
{
.....
RegisterModel rm = new RegisterModel();
//The factories return List<string>
rm.States = new SelectList(stateFactory.Create(states.Payload));
rm.Countries = new SelectList(countryFactory.Create(country.Payload));
return View(rm);
}
通过上述设置,我收到:
没有具有键“状态”的“IEnumerable”类型的 ViewData 项。
摘要 - 在页面呈现之前,我需要进行 Web 服务调用以获取 2 个下拉列表的数据。