カスケード ドロップダウン リストを作成しようとしていますが、エラーが発生します。
これには、コントローラー クラスで実行しようとしているものが含まれています。
public ActionResult Create()
{
ViewBag.Status = new SelectList(db.pjt_Statuses, "pjt_Status_ID", "StatusName");
ViewBag.CategoryID = new SelectList(db.pjt_Categories, "pjt_Category_ID", "CatName");
return View();
}
public ActionResult SubCategory(int id)
{
var SubCategory = from s in db.pjt_SubCategories
where s.CategoryID == id
select s;
return Json(SubCategory.ToList());
}
// POST: /Project/Create
[HttpPost]
public ActionResult Create(pjt_Projects pjt_projects)
{
if (ModelState.IsValid)
{
pjt_projects.CreationDate = DateTime.Now;
db.pjt_Projects.Add(pjt_projects);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Status = new SelectList(db.pjt_Statuses, "pjt_Status_ID", "StatusName", pjt_projects.Status);
ViewBag.CategoryID = new SelectList(db.pjt_Categories, "pjt_Category_ID", "CatName", pjt_projects.CategoryID);
return View(pjt_projects);
}
意見
これは、私がフロントエンドでやろうとしていることを示しています。以下のビュー コードの太字の行でエラーが発生します。私が得ているエラーは次のとおりです。
IEnumerable<SelectListItem>
key を持つタイプの ViewData アイテムはありませんpjt_SubCat_ID
。
コード:
<div class="span3 offset1">
@Html.LabelFor(model => model.CategoryID, "Category")
@Html.DropDownList("CategoryID", String.Empty)@*, null, new { @onchange = "FetchSubCategories();" })*@
<br />
@Html.ValidationMessageFor(model => model.CategoryID)
</div>
<div class="span3 offset1">
<label>Sub Category</label>
@Html.DropDownList("pjt_SubCat_ID", String.Empty)
<br />
@Html.ValidationMessageFor(model => model.SubCategoryID)
</div>
誰かがここで何がうまくいかないのか教えてもらえますか?