我有以下視圖模型:最佳的方法來填充的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");
}
我不喜歡有這個代碼在兩個不同的位置。是否有任何常見的做法將其重構爲單個點,所以我不需要重複此代碼?