我有以下视图模型:最佳的方法来填充的SelectList的视图模型上的GET/POST
public class EditViewModel
{
public int FooType { get; set; }
public IEnumerable<SelectListItem> FooTypes { get; set; }
}
我本来居住在我的编辑操作,像这样:
public ActionResult Edit(int id)
{
EditViewModel model = new EditViewModel();
model.FooTypes = new SelectList(repository.GetFooTypes(), "Id", "Value");
return View(model);
}
当我创建的操作POST的价值,我不得不重复相同的代码:
public ActionResult Edit(int id, EditViewModel model)
{
if(!ModelState.IsValid)
{
model.FooTypes = new SelectList(repository.GetFooTypes(), "Id", "Value");
return View(model);
}
return RedirectToAction("Index");
}
我不喜欢有这个代码在两个不同的位置。是否有任何常见的做法将其重构为单个点,所以我不需要重复此代码?