MVC DropDownListFor

MVC DropDownListFor

Da es hin und wieder vorkommen soll, dass auch mal eine Dropdown-Liste benötigt wird, will ich hier kurz zeigen, wie ihr das in MVC leicht realisieren könntet.

Zuerst erstellen wir ein Model:
public class RegisterModel
{
    public string Username { get; set; }

    public string Password { get; set; }

    public string Country { get; set; }

    public IEnumerable<SelectListItem> GetCountries()
    {
        return new List<SelectListItem>()
        {
            new SelectListItem() { Text = "Deutschland", Value = "de-DE" },
            new SelectListItem() { Text = "England", Value = "en-GB" }
        };
    }
}

In der View könnt ihr nun das Model wie folg verwenden:
@Html.DropDownListFor(m => m.Country, new SelectList(Model.GetCountries(), "Value", "Text"))

Natürlich müsst ihr dazu auch in der Controller-Aktion bei GET direkt eine Instanz von RegisterModel erzeugen, da ihr sonst eine NullException erhaltet:

[HttpGet] 
public ActionResult Register()
{
    RegisterModel model = new RegisterModel();
    return View(model);
}

Im Post könnt ihr dann über die Country Eigenschaft des Models auf den ausgewählten Eintrag zugreifen:
[HttpPost] 
public ActionResult Register(RegisterModel model)
{
    // model.Country

    return View(model);
}
Um einen Kommentar zu hinterlassen, ist eine Anmeldung erforderlich.