2
我從內存數據中填充DropDownList
並在POST中獲取此錯誤。具有'MaritalStatus'鍵的ViewData項的類型爲'System.String',但必須是'IEnumerable <SelectListItem>'的類型'
Error: The ViewData item that has the key 'MaritalStatus' is of type 'System.String' but must be of type 'IEnumerable'.
控制器: -
// GET: /Application/Create
public ActionResult Create()
{
List<SelectListItem> lst = new List<SelectListItem>();
lst.Add(new SelectListItem { Text = "Unmarried", Value = "1" });
lst.Add(new SelectListItem { Text = "Married", Value = "2" });
lst.Add(new SelectListItem { Text = "Widow", Value = "3" });
ViewBag.MaritalStatus = new SelectList(lst, "Value", "Text");
return View();
}
// POST: /Application/Create
[HttpPost]
public ActionResult Create(ApplicationForm applicationform)
{
if (ModelState.IsValid)
{
db.ApplicationForms.Add(applicationform);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(applicationform);
}
查看: -
<div class="editor-label">
@Html.LabelFor(model => model.MaritalStatus)
</div>
<div class="editor-field">
@Html.DropDownList("MaritalStatus")
@Html.ValidationMessageFor(model => model.MaritalStatus)
</div>
模型屬性: -
[DisplayName("Marital Status")]
public string MaritalStatus { get; set; }
任何幫助表示讚賞。
@stephen你認爲這是重複的?這個問題在3年前被問過了,你引用的問題是6個月前問的。 –
這沒有什麼區別。它讓用戶在這個問題上找到另一種答案(這是一個社區維基,並深入解釋了問題所在) –
重複標記問題的整個過程就是告訴大家忽略它,以便他們可以更好地利用他們的時間。這是一位專家在這裏解釋http://meta.stackoverflow.com/questions/260607/how-to-remove-duplicate-mark-from-my-question。所以,從技術上講,你應該將更新的問題標記爲重複。 –