Heim >Backend-Entwicklung >C++ >Wie fülle ich eine Razor DropDownList mit einer Liste in MVC?

Wie fülle ich eine Razor DropDownList mit einer Liste in MVC?

DDD
DDDOriginal
2024-12-29 22:44:33709Durchsuche

How to Populate a Razor DropDownList with a List in MVC?

Razor DropDownList mit einem List füllen in MVC

In diesem Szenario haben wir ein Modell, das ein List enthält, nämlich die GetRoles()-Methode von DbUserRoles, und einen Controller, der die Ansicht lädt und dabei die abgerufene Liste als Modell übergibt.

Um eine Dropdown-Liste zu füllen, kann ein Ansichtsmodell (UserRoleViewModel) eingeführt werden, um die Geschäftslogik zu trennen und die Ansicht zu vereinfachen. Dieses Ansichtsmodell enthält SelectedUserRoleId für die Benutzerauswahl und eine Liste (UserRoles) für Dropdown-Elemente.

Controller:

  • Transformieren Sie die DbUserRoles-Liste in eine geeignete Form für die Präsentation (SelectListItem-Liste) mit LINQ Auswählen.

Ansicht:

  • Verwenden Sie @Html.LabelFor und @Html.DropDownListFor, um die Ansichtsmodelleigenschaften an den entsprechenden HTML-Code zu binden Elemente.

Beispiel:

Ansichtsmodell:

public class UserRoleViewModel
{
    [Display(Name = "User Role")]
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}

Controller:

private IEnumerable<SelectListItem> 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);
}

Ansicht:

@model UserRoleViewModel

@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)

Dies Der Ansatz führt zu einer Dropdown-Liste, die mit den Werten aus der DbUserRoles-Liste gefüllt ist.

Das obige ist der detaillierte Inhalt vonWie fülle ich eine Razor DropDownList mit einer Liste in MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn