2012-04-20 21 views
10

私はMVCを使用しています。私は私のビューから入力し、私の投稿/ CreateControllerに渡されたカテゴリのデータを渡したいが、それは私が私のドロップダウンリストから選択した私のcategoryTypeIDを渡すことはできません。DataBinding: 'System.Web.Mvc.SelectListItem'に 'CategoryTypeID'という名前のプロパティが含まれていません

データバインディング::「System.Web.Mvc.SelectListItemは」名前「CategoryTypeID」を持つプロパティが含まれていません。ここ

はエラーです。ここで

は私のコードです:

My CreateController: 
// 
     // POST: /Category/Create 

     [HttpPost] 
     public ActionResult Create(Category category) 
     { 
      if (ModelState.IsValid) 
      { 
       db.Categories.Add(category); 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 


      ViewBag.CategoryTypes = new SelectList(db.CategoryTypes, "CategoryTypeID", "Name", category.CategoryTypeID); 

      return View(category); 
     } 
My Create View 
@model Haykal.Models.Category 




<div class="editor-label"> 
      @Html.LabelFor(model => model.CategoryTypeID, "CategoryType") 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownListFor(model => model.CategoryTypeID, 
      new SelectList(ViewBag.CategoryTypes as System.Collections.IEnumerable, "CategoryTypeID", "Name"), 
      "--select Category Type --", new { id = "categoryType" }) 
      @Html.ValidationMessageFor(model => model.CategoryTypeID) 
     </div> 

答えて

10

あなたのコントローラにだけでなく、あなたのビューで、二回あなたのSelectListを定義しています。

ビューをきれいに保ちます。ただ、次はあなたのケースで十分だろう。 @Html.DropDownListFor(model => model.CategoryTypeID, (SelectList)ViewBag.CategoryTypes)

私はDropDownListForが最初にかなり混乱していること:)

+0

+ 1。実際、SelectListを2回定義しました。あなたの説明は私の問題を絶対に解決しました。さて、なぜエラーメッセージが実際にそれを言っていないのですか?私は似たようなエラーがあります:データバインディング: 'System.Web.Mvc.SelectListItem'は名前 'Id'のプロパティを含んでいません。エラーメッセージは、ある種の誤解を招くものではありませんか? – AuroMetal

21

私は、このエラーに直面して認めざるを得ません。ビューで

editPanelViewModel.Panel = new SelectList(panels, "PanelId", "PanelName"); 

、私はこのようなリストボックスを作成しました:私は、ビューモデルのオブジェクトを結合した

@Html.ListBoxFor(m => m.Panel, new SelectList(Model.Panel, "PanelId", "PanelName")) 

それは、実際にこのようにする必要があります:

@Html.ListBoxFor(m => m.Panel, new SelectList(Model.Panel, "Value", "Text")) 
関連する問題