我有一些問題與我的dropdownlist的默認值時,返回我的模型查看一個或多個錯誤的情況下。我在視圖中有一個下拉列表,它由控制器填充,其他列表中的空白下拉列表在同一視圖中,在選擇第一個下拉列表時填充了JSON。返回模型以查看與selectlistitem錯誤的默認值
public ActionResult Countriesdata()
{
CountrydetailsViewModel vm= new CountrydetailsViewModel();
vm.countries= dal.countries().Select(x => new SelectListItem { Text = x.Name, Value = x.CountryID.ToString() })
.ToList();
return View(vm);
}
這裏,dal是我的數據訪問層,允許我從數據庫中填充國家列表。代碼中使用,以填補在視圖中的國家名單是這樣
@Html.DropDownListFor(m => m.selectedcountry, new SelectList(Model.countries, "Value", "Text", Model.selectedcountry), "-Select a Country-", new { @class = "ddlist" })
空dropdowlists之一是如下
@Html.DropDownListFor(m => m.selectedtown, new SelectList(Enumerable.Empty<SelectListItem>(), "Value", "Text", Model.selectedtown), "-Select a Town/City-", new { @class = "ddlist" })
此代碼的工作非常好我到達頁面的第一個因爲我已經爲選擇國家的國家/地區dropdownlist設置了默認值。我使用下面的代碼發佈我的表單。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Countriesdata(CountrydetailsViewModel returnmodel)
{
if (! ModelState.IsValid)
{
returnmodel.countries= dal.countries().Select(x => new SelectListItem { Text = x.Name, Value = x.CountryID.ToString() })
.ToList();
return View(returnmodel);
}
return RedirectToAction("mainpage");
}
如果表單包含錯誤,我的模型返回到我的觀點與國家發佈的價值選擇下拉列表默認,這不是我的目標,因爲別人dropdowlists這些都對國家下拉列表使用JSON填寫選擇變化是空的。因此,我應該選擇這個國家一次來填補其他的dropdowlists,這很麻煩。爲了邏輯起見,我想發回我的模型到我的視圖,默認值爲發生錯誤時的國家下拉列表。我正在使用MVC4和VS 2010
+1 @Stephen Muecke,我已經根據自己的需要實現了你的代碼,它像一個魅力一樣走路。非常感謝 –
那麼也許你應該考慮接受答案來解決這個問題(以及其他答案給你的問題,包括你自己解決問題的答案) –