如何将下拉选择的值插入数据库

how to insert dropdown selected value into database

我有一个下拉列表这个值来自另一个 table 所以在这个下拉列表中选择的值插入另一个 table

see our image

 <div class="col-lg-4">
                    <fieldset class="form-group">
                        @Html.LabelFor(model => model.CompanytypeID, new { @class = "form-label semibold" })
                        @Html.DropDownList("CompanyType", null, "--- Select CompanyType Name ---", new { @class = "select2-arrow" })
                        @Html.ValidationMessageFor(model => model.CompanytypeID, "", new { @style = "color:red" })
                    </fieldset>
                </div>



public void CompanyType_Bind()
        {
            DataSet ds = dDSP.Get_CompanyType();
            List<SelectListItem> companylist = new List<SelectListItem>();
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                companylist.Add(new SelectListItem { Text = dr["CompanyType"].ToString(), Value = dr["CompanytypeID"].ToString() });
            }
            ViewBag.CompanyType = companylist;
        }




public DataSet Get_CompanyType()
        {
            SqlCommand cmd = new SqlCommand("Select * From UserType", constr);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            return ds;
        }

Error page

您还没有将代码的下拉列表绑定到部门模型的任何 属性。

@Html.DropDownList("CompanyType", null, "--- Select CompanyType Name ---", new { @class = "select2-arrow" })

将生成一个名为 CompanyType 的 select 元素。

从您的验证器代码中您可以看到您想要将其与 CompanytypeID 相关联

最简单的方法是将下拉列表声明更改为 DropDownListFor,"bind" 将其更改为 CompanytypeID

<div class="col-lg-4">
                    <fieldset class="form-group">
                        @Html.LabelFor(model => model.CompanytypeID, new { @class = "form-label semibold" })
                        @Html.DropDownListFor(m => m.CompanytypeID, ViewBag.CompanyType as IEnumerable<SelectListItem>, "--- Select CompanyType Name ---", new { @class = "select2-arrow" })
                        @Html.ValidationMessageFor(model => model.CompanytypeID, "", new { @style = "color:red" })
                    </fieldset>
                </div>

很高兴看到您的整个 cshtml 页面。

我还建议使用 ViewModels。看起来您正在 POST 返回您的实体模型,这就是您将此列表放入 ViewBag 的原因。

您的 SELECT 元素名称应与您的 属性 名称匹配。使用您当前的代码,您正在生成名称为 "CompanyType" 的 select 元素,但在您的视图模型 (Department) 中,您的 属性 名称为 CompanyTypeId

要使模型绑定起作用,输入元素名称应与 属性 名称匹配。因此,为您的 SELECT 元素使用相同的名称,您应该是好的。

@Html.DropDownListFor(x=>x.CompanyTypeId, ViewBag.CompanyType as List<SelectListItem>,
                      "Select CompanyType", new { @class = "select2-arrow" })

更进一步,不要 post link 代码的图像。而是在问题本身中包含相关代码。