我需要關於如何處理我創建的列表並通過Viewbag傳遞給我的視圖的一些說明。如果POST中的模型出現問題,我需要重新創建並傳遞它,否則我將得到Razor語法的錯誤。我是否需要爲get/post ActionResult創建相同的列表?
有沒有更好的方法來做到這一點,我不必再次創建它(查詢我的數據庫)? 我想Viewbag是不可能的,它只是一個快速修復。
// GET
public ActionResult Create()
{
Person person = new Person();
ViewBag.CountryList = Main.GetCountryList(); // for person.country string
return View(Person);
}
// POST
[HttpPost]
public ActionResult Create(Person person)
{
if (ModelState.IsValid)
{
...
}
ViewBag.CountryList = Main.GetCountryList();
return View(person);
}
HTML /剃刀:
@Html.DropDownListFor(model => model.country, ViewBag.CountryList as SelectList)