asp.net mvc 4 - Cascade Drop down list -
i trying create cascading drop down list, , getting error.
this contains try in controller class:
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 = s in db.pjt_subcategories 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); } view
this shows try on front end. getting error bold line in view code below. error getting is:
there no viewdata item of type
ienumerable<selectlistitem>has keypjt_subcat_id.
code:
<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> can advise me going wrong here?
the problem engine trying selectlist viewbag , cannot find it. guessing want dropdown display items have stored in viewbag under "pjt_subcat_id" not adding item viewbag anywhere in code have listed in question.
if supposed data returned subcategory() method, not find data in viewbag , should have javascript calls method on click event of original selectlist (category id one) , binds returned data subcategory one.
Comments
Post a Comment