There are a number of very useful helpers that are used by default in the ASP.NET MVC framework, but one that is always confusing is the Html.DropDownListFor () helper method. So, in this post, I quickly move on to the steps that I use to populate the list, as well as to some more functional functions after it starts!
, , .
, , , .
public class IndexViewModel
{
[Required]
public int CountryID { get; set; }
public SelectList Countries { get; set; }
}
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
IndexViewModel viewModel = new IndexViewModel();
viewModel.Countries = new SelectList(GetCountries(), "ID", "Name");
return View(viewModel);
}
[HttpPost]
public ActionResult Index(IndexViewModel viewModel)
{
viewModel.Countries = new SelectList(GetCountries(), "ID", "Name");
if (!ModelState.IsValid)
{ return View(viewModel); }
CMSService.UpdateCurrentLocation(viewModel.CountryID);
return View(viewModel);
}
}
@Html.DropDownListFor(x => x.CountryID, Model.Countries)
@Html.DropDownListFor(x => x.CountryID, Model.Countries, "- please select -")
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")"
type="text/css" rel="stylesheet" />
<script type="text/javascript" src="@Url.Content("></script>
<script type="text/javascript" src="@Url.Content("></script>
<link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/selectmenu.css")" />
<script src="@Url.Content("~/Scripts/selectmenu.js")" type="text/javascript"></script>
<script type="text/javascript">
$('select').selectmenu();
</script>