【发布时间】:2016-06-18 18:02:48
【问题描述】:
我有一个患者模型,它有一个性别表的外键。我想创建一个“创建”视图,允许用户从下拉列表中选择男性或女性的值。
首先,我不确定如何将 Gender 模型放入下拉列表。我已经设法通过放入 viewbag 来让它工作,就像这样
// 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();
}
}
在我看来,我有以下内容,这给了我想要的下拉菜单。
<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>
但是,当我将帖子添加到数据库时,性别列为空。
// 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 存储在数据库中?
【问题讨论】:
标签: asp.net-mvc entity-framework