无法获取DropDownListFor(MVC5)的选定值

时间:2018-03-05 14:30:25

标签: c# asp.net-mvc-5 dropdownlistfor

我可以从我的数据库中检索值并显示在下拉列表中,但我想让它具有一个选定的值,我的数据库上有ID值。

这是我的代码:

AdminViewModel.cs

public IEnumerable<UserType> UserTypes { get; set; }
public int userTypeID { get; set; }

控制器

var userType = _context.UserTypes.ToList();
var viewModel = new AdminViewModel()
{
     UserTypes = userType
 };
 return View(viewModel);

查看

@Html.DropDownListFor(m => m.userTypeID, new SelectList(Model.UserTypes, "userTypeID", "userTypeName", Model.userTypeID), new { @class = "form-control" })

选择的值应该是基于数据库值的Caregiver:

1 个答案:

答案 0 :(得分:2)

使用SelectListItem代替并为所选项目设置value为真。

AdminViewModel.cs:

public IEnumerable<SelectListItem> UserTypes { get; set; }
public int userTypeID { get; set; }

控制器:

var viewModel = new AdminViewModel();
SelectListItem item;
var userType = _context.UserTypes.ToList();
foreach(var uType in userType)
  {
   item = new SelectListItem();
   item.Text = userType.userTypeName;
   item.Value = userType.userTypeID;
   if (item.Text == "Caregiver") // or any logic
     {
       item.Selected = true;
     }
     viewModel.UserTypes.Add(item);
   }

 return View(viewModel);

查看:

@Html.DropDownListFor(m => m.userTypeID, Model.UserTypes , "Select", new { @class = "form-control" })