Failed to get selected value for DropDownListFor (MVC5)

I can get the values ​​from my database and display them in the drop-down list, but I want it to have the selected value in which my database has an ID value on it.

Here is my code:

Adminminmodel.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);

View

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

The selected value should be a Caregiver based on the database value:

+4
source share
1 answer

Use SelectListIteminstead and set valuetrue for the selected item.

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);

View:

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

Source: https://habr.com/ru/post/1694478/


All Articles