加载位置下拉列表

时间:2019-01-24 13:22:56

标签: asp.net model-view-controller

在MVC Asp.net中将国家/地区列表的下拉列表加载到哪里?我们应该在控制器中还是在模型本身中填充下拉列表?任何例子。

2 个答案:

答案 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