Вот один из способов (не рекомендуется из-за ViewData
, вы можете сразу перейти ко второму предложению):
Предполагается, что у вас есть следующие действия контроллера:
public ActionResult Index()
{
var model = new MyViewModel();
model.SelectedCountryValue = "India";
GetCountryLists(model.SelectedCountryValue);
return View(model);
}
и в представлении:
<%= Html.DropDownListFor(
x => x.SelectedCountryValue,
(SelectList)ViewData["country"]
) %>
А теперь рекомендуемый способ:
Модель:
public class MyViewModel
{
public string SelectedCountryValue { get; set; }
public IEnumerable<SelectListItem> Countries { get; set; }
}
Контроллер:
public ActionResult Index()
{
var model = new MyViewModel
{
SelectedCountryValue = "India",
Countries = GetCountries()
};
return View(model);
}
private IEnumerable<SelectListItem> GetCountries()
{
return new[]
{
new SelectListItem { Value = "India", Text = "India" },
new SelectListItem { Value = "USA", Text = "USA" },
}
}
и в представлении:
<%= Html.DropDownListFor(
x => x.SelectedCountryValue,
new SelectList(Model.Countries, "Value", "Text"),
"Select a country"
) %>