如何获取下拉列表选定值

本文关键字:下拉列表 获取 何获取 | 更新日期: 2023-09-27 18:34:00

我是MVC的新手。到目前为止,我成功地在下拉列表中绑定了数据库中的数据。

如何获取所选值并将其传递给控制器以保存在数据库中?

以下是我到目前为止所做的:

视图:

@Html.DropDownList("State", null, new { @class = "dropdown-toggle col-md-9 form-control" })

CONTOLLER:(这是下拉列表中数据的绑定方式)

  IEnumerable<SelectListItem> states = db.RefState
            .Select(s => new SelectListItem
            {
                Value = s.ID.ToString(),
                Text = s.Name
            });

        ViewBag.AddressType = types;
        ViewBag.State = states;
        return View();

这是我将其保存在数据库中的方式:

    public ActionResult NewAddress(Address data)
    {
        if(ModelState.IsValid)
        {
            var addressData = new Address()
            {
                ZipCode = data.ZipCode,
                StreetNo = data.StreetNo,
                StreetName = data.StreetName,
                Unit = data.Unit,
                Additional = data.Additional,
                Town = data.Town,
                City = data.City,
                StateID = ?,  
                Description = data.Description,
                VendorCode = data.VendorCode
            };
            db.Address.Add(addressData);
            db.SaveChanges();
            ModelState.Clear();
            data = null;
            ViewBag.Message = "Address succesfully added";
            return RedirectToAction("DeliveryInformation", "DeliveryDetail");
        }
        return View(data);
    }

如何获取下拉列表选定值

在您的控制器方法中,新地址添加另一个参数 表单集合 表单集合 .

现在尝试:

StateID = formCollection["State"]
或者,将

下拉列表的名称属性更改为状态 ID 而不是状态可能更干净。

@Html.DropDownList("StateID", null, new { @class = "dropdown-toggle col-md-9 form-control" })

MVC 仅当控件的 name 属性与参数的属性名称具有完全相同的值时,才会将控件的值映射到参数的属性。