2013-05-15 208 views
0

我想創建一個級聯下拉列表,並且出現錯誤。級聯下拉列表

這包含了什麼,我試圖在我的控制器類的事:

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); 
} 

查看

這說明什麼,我試圖在前端做。我在下面的視圖代碼中看到粗體行出現錯誤。我得到的錯誤是:

有是有鑰匙pjt_SubCat_IDIEnumerable<SelectListItem>類型的無ViewData的項目。

代碼:

<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> 

有人能告訴我是怎麼回事錯在這裏?

+0

哪條粗線?這一個:@ Html.DropDownList(「pjt_SubCat_ID」,String.Empty)? – JTMon

+0

O它沒有變得大膽,是它的那一行,對不起@JTMon – PatrickMelia

回答

0

問題是引擎正試圖從viewbag中獲取SelectList並且找不到它。我猜你想讓下拉菜單在「pjt_SubCat_ID」下顯示存儲在viewbag中的項目,但是您並未將該項目添加到您在問題中列出的代碼中的任何位置。

如果這應該是從SubCategory()方法返回的數據,那麼您將無法在viewbag中找到該數據,並且您應該有一個javascript在原始SelectList的Click事件中調用此方法一個),並將返回的數據綁定到子類別。

+0

好的聲音。如果你不介意我問你能幫我完成這個嗎?如果你能幫助我,那會很棒。 – PatrickMelia

+0

只是谷歌「級聯DropDwonList mvc4」,你將得到所有你需要的幫助:) – JTMon

+0

好的聲音,我接近這個解決方案嗎? – PatrickMelia