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

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

<分区>

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

这是我的代码:

AdminViewModel.cs

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

Controller

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:

最佳答案

改为使用 SelectListItem 并将所选项目的 value 设置为 true。

AdminViewModel.cs:

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

Controller :

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" })

关于c# - 无法获取 DropDownListFor (MVC5) 的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112731/

相关文章:

c# - 无法从对话框结果隐式转换为 bool

c# - 我是否需要在表示层中添加对 EntityFramework.SqlServer 的引用?

c# - 如何从 html 下拉列表中获取所选项目并将其传递给 mvc c# 中的另一个 Controller

asp.net - 值不能为空。参数名称 : items (DrodownList)

c# - ASP NET Web API 中的路由 - 对于不同版本的 API

PHP MYSQL Chained Drop down 如何显示数据

c# - 将多个 ContentView 放在一个 ScrollView 中

c# - Intellisense 窗口有输入字段,不占用空间

c# - 可空类型和赋值运算符

c# - ASP.NET 标识 : get all users in a role