Вы можете разделить свою бизнес-логику на viewmodel, поэтому ваше представление имеет более чистое разделение.
Сначала создайте модель просмотра, чтобы сохранить идентификатор, который пользователь выберет, и список элементов, которые будут отображаться в DropDown
.
ViewModel:
public class UserRoleViewModel
{
// Display Attribute will appear in the Html.LabelFor
[Display(Name = "User Role")]
public int SelectedUserRoleId { get; set; }
public IEnumerable UserRoles { get; set; }
}
Ссылки:
Внутри контроллера создайте метод, чтобы получить список UserRole
и преобразуйте его в форму, которая будет представлена в представлении.
Контроллер:
private IEnumerable GetRoles()
{
var dbUserRoles = new DbUserRoles();
var roles = dbUserRoles
.GetRoles()
.Select(x =>
new SelectListItem
{
Value = x.UserRoleId.ToString(),
Text = x.UserRole
});
return new SelectList(roles, "Value", "Text");
}
public ActionResult AddNewUser()
{
var model = new UserRoleViewModel
{
UserRoles = GetRoles()
};
return View(model);
}
Ссылки:
Теперь, когда создана модель представления, упрощается формализация представления
Вид:
@model UserRoleViewModel
@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)
Ссылки:
Это приведет к: