2013-03-25 87 views
0

我有一個應該採取的類別名稱並做到這一點,我已經做了這樣的取得動作一個博客帖子:創建實體框架法師詳細

public ActionResult Add() 
     { 
      ViewBag.CategoryList = new SelectList(_categoryRepository.GetAllCategory(), "Id", "Name"); 
      return View(new BlogPost()); 

     } 

,並在查看我:

@model Blog.Domain.Model.BlogPost 
@{ 
    ViewBag.Title = "AddPost"; 
    Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml"; 
} 

<fieldset> 
    @using (Html.BeginForm("Add", "Blog", FormMethod.Post)) 
    { 
     @Html.ValidationSummary() 
     <div> 
      @Html.LabelFor(b => b.Title) 
      @Html.TextBoxFor(b => b.Title) 
      @Html.ValidationMessageFor(b => b.Title) 
     </div> 

     <div> 
      @Html.LabelFor(b => b.Body) 
      @Html.EditorFor(b => b.Body) 
      @Html.ValidationMessageFor(b => b.Body) 
     </div> 

     <div> 
      @Html.LabelFor(b => b.Summary) 
      @Html.TextBoxFor(b => b.Summary) 
      @Html.ValidationMessageFor(b => b.Summary) 
     </div> 

     <div> 
      @Html.LabelFor(b => b.Category) 
      @Html.DropDownListFor(model => model.Category.Id, ViewBag.CategoryList as SelectList, "--- Select Category ---", new { @class = "some_class" }) 
     </div> 
     <div> 
      <input type="submit" value="Add Post" /> 
     </div> 
    } 
</fieldset> 

,並在行動後我寫這樣的代碼:

[HttpPost] 
     public ActionResult Add(BlogPost blogPost) 
     { 
      if (ModelState.IsValid) 
      { 
       blogPost.PublishDate = DateTime.Now; 
       _blogPostRepository.AddPost(blogPost); 
       _blogPostRepository.Save(); 
       return View(); 
      } 
      return View(); 
     } 

我不知道,我寫了這個代碼exactl y正確與否,但我一直有這個麻煩!主從在這種情況下實際上與實體框架將選擇一個類別,並把它發送到數據庫成功,如果你有寫之前,請幫我約的是這樣的事情,感謝

回答

0

看起來你設置了兩個下拉列表併爲模型的ID字段分配一個值,我假設它是博客帖子實體的ID。?

  1. 卸下@ Html.DropDownList(...)語句
  2. 修改@ Html.DropDownListFor(...)的第一個參數lambda表達式選擇所述模型/實體的屬性的CategoryId(無論FK字段名稱爲類別,推測模型=> model.CategoryId)

    @ Html.LabelFor(b => b.Category) @ Html.DropDownListFor(型號=> model.CategoryId,ViewBag.CategoryList如的SelectList 「---選擇類別---」,新{@class = 「some_class」})
+0

我的錯真的很抱歉(二級下拉列表),我只是複製和過去的信息和第一,這就是一個評論沒有注意到!我真的混了,我想你說的是什麼,但現在我得到這個錯誤:有類型的無ViewData的項目「的IEnumerable 」具有關鍵「Category.Id」。 – 2013-03-25 21:48:17