मेरे पास निम्नलिखित दृश्य मॉडल है
public class ProjectVM
{
....
[Display(Name = "Category")]
[Required(ErrorMessage = "Please select a category")]
public int CategoryID { get; set; }
public IEnumerable<SelectListItem> CategoryList { get; set; }
....
}
और एक नया प्रोजेक्ट बनाने और असाइन करने के लिए निम्न नियंत्रक विधि Category
public ActionResult Create()
{
ProjectVM model = new ProjectVM
{
CategoryList = new SelectList(db.Categories, "ID", "Name")
}
return View(model);
}
public ActionResult Create(ProjectVM model)
{
if (!ModelState.IsValid)
{
return View(model);
}
// Save and redirect
}
और देखने में
@model ProjectVM
....
@using (Html.BeginForm())
{
....
@Html.LabelFor(m => m.CategoryID)
@Html.DropDownListFor(m => m.CategoryID, Model.CategoryList, "-Please select-")
@Html.ValidationMessageFor(m => m.CategoryID)
....
<input type="submit" value="Create" />
}
दृश्य सही तरीके से प्रदर्शित होता है लेकिन फ़ॉर्म सबमिट करते समय, मुझे निम्न त्रुटि संदेश मिलता है
InvalidOperationException: ViewData आइटम जिसमें 'श्रेणीआईडी' कुंजी है, 'System.Int32' प्रकार का है, लेकिन यह 'IEnumerable <SelectListItem' प्रकार का होना चाहिए।
वही त्रुटि का उपयोग कर होता @Html.DropDownList()
विधि, और अगर मैं का उपयोग कर एक selectList पारित ViewBag
या ViewData
।