Mam problemy podczas wybierania wartości DropDownList. Czytałem wszystkie podobne posty i nie mogę znaleźć rozwiązania.Wybrana właściwość w SelectListItem nigdy nie działa (DropDownListFor)
Faktyczne podejście wydaje się bardzo dobry dla mnie, bo mogę sprawdzać pola, które będą wewnątrz selectList:
var selectList = new List<SelectListItem>(
from variable in someKindOfCollection
select new SelectListItem
{
Selected = variable.Property == selection,
Text = variable.Property,
Value = variable.Property
});
Podobno to daje mi całkowitą kontrolę. Po utworzeniu listy selectList mogę sprawdzać zmienne za pomocą debuggera. Wszystko jest w porządku, a jeden z nich ma zaznaczony atrybut "Wybrany".
Następnie używam DropDownListFor aby pokazać na widoku:
@Html.DropDownListFor(
g => g.SomePropertyInModel , selectList, new { @class = "cssClass" })
Ale to nie działa, nigdy ... „Renders” listę rozwijaną, ale nic nie jest zaznaczone.
Thanks a lot :)
NEW Przykład Przede wszystkim chcę przeprosić. Ukrywałem informacje, oczywiście zupełnie nieumyślnie. Cały kod dzieje wewnątrz pętli for Razor:
@foreach (var loopVariable in Model.Collection)
{
if (Model.SomeCondition != null)
{
selection = someValue;
}
var selectList = new List<SelectListItem>(
from variable in someKindOfCollection
select new SelectListItem
{
Selected = variable.Property == selection,
Text = variable.Property,
Value = variable.Property
});
@Html.DropDownListFor(
g => g.SomePropertyInModel , selectList, new { @class = "cssClass" })
}
Tak, to fakt selectList jest zmienna lokalna przyczyną problemu ?. Przepraszam, nie myślałem, że to jest to.
Czy możesz dołączyć wyjście HTML rozwijanego menu? – Brandon
Dzięki Brandon, zaktualizowałem post. – IoChaos