2016-06-18 8 views
0

私はジェンダーテーブルへの外部キーを持つ患者モデルを持っています。私はドロップダウンから男性または女性の値を選択することができます '作成'ビューを作成したいと思います。MVCは、ドロップダウン、エンティティフレームワークでテーブルの値を好きなものを使用して作成します

最初にジェンダーモデルをドロップダウンに入れる方法がわかりませんでした。私は私が望むドロップダウンを与え、私は、次のしている私の見解では、そう

// GET: Patient 
    public ActionResult Create() 
    { 
     using (var context = new WaysToWellnessDB()) 
     { 
      // prepopulat roles for the view dropdown 
      var gender = context.Genders.Select(rr => new SelectListItem { Value = rr.GenderId.ToString(), Text = rr.GenderDesc }).ToList(); 
      ViewBag.Gender = gender; 

      return View(); 
     } 
    } 

のように、viewbagに置くことによって動作するようにそれを得るために管理しています。

<div class="form-group"> 
     @Html.LabelFor(model => model.Gender, "Gender", htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownList("Gender", (IEnumerable<SelectListItem>)ViewBag.Gender, "Select ...") 
      @Html.ValidationMessageFor(model => model.Gender.GenderId, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

私の投稿をデータベースに追加すると、性別の列はnullになります。

// POST: /Roles/Create 
    [HttpPost] 
    public ActionResult Create(Patient patient) 
    { 
     try 
     { 
      using (var context = new WaysToWellnessDB()) 
      { 
       context.Patients.Add(patient); 
       context.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

性別IDをデータベースに保存する方法を教えてもらえますか?

答えて

2

あなたは、@ Html.DropDownListFor

@Html.DropDownListFor(model => model.GenderId, (IEnumerable<SelectListItem>)ViewBag.Gender, "Select ...") 
+0

おかげで非常に多くを使用する必要があります – user3284707

関連する問題