Не забудьте перепривязать список в действии POST:
[HttpPost]
public ActionResult Index(MyViewModelTwee Model)
{
var listCategories = new List<SelectListItem>();
listCategories.Add(new SelectListItem() { Text = "foo", Value = "1" });
listCategories.Add(new SelectListItem() { Text = "bar", Value = "2" });
Model.Categories = listCategories;
return View(Model);
}
Помните, что при отправке html <form>
отправляется только выбранное значение.Остальные значения теряются, поэтому вам нужно перезапускать их с того места, где вы их взяли в действии GET.Конечно, вы извлечете этот код в слой хранилища, чтобы ваш код теперь выглядел следующим образом:
public ActionResult IndexTwee()
{
var model = new MyViewModelTwee
{
SelectedCategoryId = 2,
Categories = _repository.GetCategories()
};
return View(model);
}
[HttpPost]
public ActionResult IndexTwee(MyViewModelTwee Model)
{
Model.Categories = _repository.GetCategories();
return View(Model);
}