Porównaj ceny domen i usług IT, sprzedawców z całego świata

Lista rozwijana MVC ustawia wybraną wartość


Hej, próbowałem wykonać następujące czynności, aby ustawić wybraną wartość na liście rozwijanej.
W moim kontrolerze:
u.Roles = new List<AspNetRole>();
foreach (var role in db.AspNetRoles)
{
u.Roles.Add(role);
}

I moim zdaniem:
@Html.DropDownList(Model.role.Id, new SelectList(Model.Roles, "Id", "Name"), htmlAttributes: new { @class = "form-control"})

Ale nadal nie działa, nie otrzymałem wybranej wartości. Podczas debugowania widzę, że
Model.role.Id
zawiera wybraną wartość.
Należy również zauważyć, że identyfikator jest typu string, ponieważ jest zaszyfrowany.
Co ja robię źle?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieje kilka sposobów wyświetlania DropDownList w MVC. Podoba mi się następujące podejście.

Uwaga: potrzebujesz kolekcji

SelectListItem

w modelu.


Model
>
public class MyModel
{
public int SelectedId { get; set; }
public IList<SelectListItem> AllItems { get; set; } public MyModel()
{
AllItems = new List<SelectListItem>();
}
}


Kontroler
>
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyModel();
model.AllItems = new List<SelectListItem>
{
new SelectListItem { Text = "One", Value = "1"},
// *** Option two is selected by default ***
new SelectListItem { Text = "Two", Value = "2", Selected = true},
new SelectListItem { Text = "Three", Value = "3"}
};
return View(model);
} [HttpPost]
public ActionResult Index(MyModel model)
{
// Get the selected value
int id = model.SelectedId;
return View();
}
}


Zegarek
>
@model DemoMvc.Controllers.MyModel
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.DropDownListFor(x => x.SelectedId, Model.AllItems)
<input type="submit" value="Submit"/>
}

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się