在MVC Asp.net中将国家/地区列表的下拉列表加载到哪里?我们应该在控制器中还是在模型本身中填充下拉列表?任何例子。
答案 0 :(得分:0)
您应该传递列表以从控制器操作中查看模型,并在剃刀视图中进行填充。您可以在以下链接http://www.tutorialsteacher.com/mvc/htmlhelper-dropdownlist-dropdownlistfor中找到更多信息
答案 1 :(得分:0)
例如,这取决于您是否将国家/地区存储在数据库中,最好在控制器操作中构建SelectList:
public ActionResult Index()
{
var countries = db.Countries.ToList(); // get your countries
var model = new CountryViewModel();
model.Countries = new SelectList(countries,"Id","Name");
return View(model);
}
我猜您的CountryViewModel
看起来像这样:
public class CountryViewModel{
public SelectList Countries {get;set;}
public int CountryId {get;set;}
}
然后在您的视图中可以显示DropDown:
@Html.DropDownListFor(model => model.CountryId, Model.Countries, htmlAttributes: new { @class = "form-control" })
如果它是静态列表,则可以在模型本身中填充它:
public class CountryViewModel{
public SelectList Countries {get;set;}
public int CountryId {get;set;}
public CountryViewModel{
Countries = new SelectList(GetCountriesFormSomeGlobalPlace(),"Id","Name");
}
}
通常,请勿在视图中使用代码优先模型(如果您先使用代码),而应使用ViewModel
POCOs
。