【问题标题】:MVC create using liked table values in dropdown, entity frameworkMVC 在下拉列表、实体框架中使用喜欢的表值创建
【发布时间】: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


    【解决方案1】:

    你应该使用@Html.DropDownListFor

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2017-07-11
      相关资源
      最近更新 更多