我选择的下拉列表项目未保存在db中

问题描述:





我是mvc5的新手,我为选择器创建了2个母版页和下拉列表,当我从下拉列表中选择值时,该值为不保存在Db。请帮我。该特定字段显示错误消息:部门字段是必需的。我想从相同的字段下拉列表中选择值后,该字段值不会被采用。请帮助我在这里弄错了。



以下是我的代码。



谢谢。



我的尝试:



查看页面

Hi,

I am new for mvc5, I have created 2 master pages and drop down list for selector, when I selecting value from drop down that value is not saving in Db. please help me. that particular field is showing error message: "Department field is required". I guess that field value is not taking after selecting value from same field drop down list. Pleas help me where I did mistake in this.

below is my code.

Thank you.

What I have tried:

View Page

<div class="form-group">          
            @Html.LabelFor(model => model.Department, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-6" style="width:275px;">
                @Html.DropDownList("ID", null, htmlAttributes: new { @class = "form-control" })              
                @Html.ValidationMessageFor(model => model.Department, "", new { @class = "text-danger" })
            </div>
        </div>







低于Controller的代码




below code for Controller

//Get Method
   public ActionResult Add()
        {
           //Below one line for finder
            PopulateDivisionDropDownList();
            return View();
        }

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Add([Bind(Include = "ID,Code,Name,Department,CreatedDateandTime")] DivisionViewModel divisionViewModel)
        {

            if (ModelState.IsValid)
            {
                db.DivisionViewModels.Add(divisionViewModel);
                db.SaveChanges();
                return RedirectToAction("List");
            }

            //below line for finder
            ViewBag.Name = new SelectList(db.DivisionViewModels, "ID", "Name", divisionViewModel.Name);
            PopulateDivisionDropDownList(divisionViewModel.ID);
            db.SaveChanges();            
            return View(divisionViewModel);
         }
        //below method for finder
        private void PopulateDivisionDropDownList(object selectedDepartment = null)
        {
            var departmentquery = from dept in db.DepartmentViewModels
                               orderby dept.Name
                               select dept;
            db.SaveChanges();
            ViewBag.ID = new SelectList(departmentquery, "ID", "Name", selectedDepartment);
            //db.SaveChanges();
        } 

使用
@Html.DropDownListFor(model => model.Department)

而不是

@Html.DropDownList

目前你的下拉列表没有'name'属性,并且没有值存在于model.Department

Currently your dropdownlist have no 'name' attribute and no value is holding in model.Department