2014-09-18 2 views
1

아래에서 오류를 해결할 수 있습니까? 내 암호가 잘못되었습니다. 당신의 도움을 주셔서 감사합니다.'CategoryId'키가있는 ViewData 항목의 형식은 'System.Int32'이지만 'IEnumerable <SelectListItem>'유형이어야합니다.

오류 : 키 '카테고리 ID'유형 인 '선택 System.Int32'을 가지고 있지만 유형 '을 IEnumerable'해야

을 ViewData 항목입니다.

컨트롤러

public ActionResult ProductCreate() 
    { 
     ViewBag.Suppliers = db.Suppliers.Where(x => x.IsActive).ToList(); 
     ViewBag.Categories = new SelectList(db.Categories.Where(x => x.IsActive).ToList(), "Id", "Name").ToList(); 
     return View(); 
    } 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult ProductCreate(Product product, int[] suppliers) 
    { 
     if (ModelState.IsValid) 
     { 
      foreach (int SupplierId in suppliers) 
      { 
       product.Suppliers.Add(db.Suppliers.Find(SupplierId)); 
      } 
      db.Products.Add(product); 
      db.SaveChanges(); 
      return RedirectToAction("ProductIndex"); 
     } 

     return View(product); 

보기 :

@(Html.DropDownListFor(x => x.CategoryId, (IEnumerable<SelectListItem>)ViewBag.Categories)) 
       <br /> 
       @Html.ValidationMessageFor(x => x.CategoryId) 
+0

중복 질문처럼 들리겠습니까? http://stackoverflow.com/questions/23293042/mvc-error-is-of-type-system-int32-but-must-be-of-type-ienumerableselectlist – MethodMan

답변

1

난 그냥 만들 수의 후 작업을 다시 viewbag을 채운, 그리고 그것을 해결된다.

관련 문제