Мне нужен DropDownList на странице, поэтому я пробую вот так:
Действие:
[HttpGet]
public ActionResult GetPoint() {
...
List<SelectListItem> zooms = new List<SelectListItem>();
for (int i = 0; i <= 21; i++) {
if (i == 9)
zooms.Add(new SelectListItem() { Selected = true, Text = i.ToString(), Value = i.ToString() });
else
zooms.Add(new SelectListItem() { Selected = false, Text = i.ToString(), Value = i.ToString() });
}
model.myselectlist = zooms;
...
return View(model);
}
И в представлении:
@Html.DropDownListFor(model => model.Zoom, Model.myselectlist , new { @class = "dropdown" })
Итак, как я и ожидал, у нас есть DropDownList с 9
is Selected Item.
Но в том же представлении мне нужен еще один DropDown Итак, это моя реализация:
[HttpGet]
public ActionResult GetPoint() {
...
List<SelectListItem> places = new List<SelectListItem>();
places.Add(new SelectListItem() { Text = "NY", Value = "NY", Selected = false });
places.Add(new SelectListItem() { Text = "CA", Value = "CA", Selected = false });
places.Add(new SelectListItem() { Text = "TX", Value = "TX", Selected = false });
places.Add(new SelectListItem() { Text = "NH", Value = "NH", Selected = true });
places.Add(new SelectListItem() { Text = "NV", Value = "NV", Selected = false });
model.myselectlistII = places;
...
return View(model);
}
И в View у меня есть:
@Html.DropDownListFor(model => model.Place, Model.myselectlistII , new { @class = "dropdown" })
Итак, как вы видите, у меня есть список, в котором элемент NH
имеет selected = true
.
И я ожидаю, что выпадающий список будет выбран NH
, но это не произойдет, и всегда будет выбран первый элемент.
У меня странное поведение, я отлаживаю код в конце действия и в начале @Html.DropDownListFor
строки на странице просмотра, все в порядке, но после этой строки я снова проверяю Model.myselectlistII
выбранный элемент изменился и все элементы есть выбранное свойство с false
, я не понимаю, что произошло? в чем проблема? почему первый DropDownFor
ничего не изменил, а второй изменил мой список? что вы предлагаете?
Place
(например, в конструкторе или где-то еще)? Если это так, он заменит полеSelected
в вашем списке ... - person Samuel Caillerie   schedule 31.12.2012GetPoint()
и в вашей моделиmodel
, но поскольку ваш@Html.DropDownListFor()
основан на полеmodel.Place
, если это поле инициализировано чем-то, это переопределит вашSelected
значений в _6 _... - person Samuel Caillerie   schedule 31.12.2012