Формат html.DropDownListFor значение Не выбрано в режиме редактирования
Я успешно могу сохранить значение в базу данных (значение заголовка) при вставке , но когда я визуализирую то же самое представление в режиме редактирования, то поле заголовка должно содержать выбранное значение, но в моем случае никакое значение не выбирается раскрывающимся списком заголовка...не знаю, почему я получаю выпадающее меню с ничего не выбрано, в то время как поле заголовка содержит сохраненное значение(в бэкэнде).
@Html.DropDownListFor(model => model.title, new SelectList(Model.titles, "Value", "Text"),"-Select-") // nothing selected on edit mode
@Model.title //displaying the stored value which the user selected initially.
значения для заголовка
titles = new SelectList(ListItem.getValues().ToList(), "Value", "Text").ToList();
Функция GetValue
public static List<TextValue> getValues()
{
List<TextValue> titles= new List<TextValue>();
TextValue T= new TextValue();
T.Value = "Mr";
T.Text = "Mr";
titles.Add(T);
T= new TextValue();
T.Value = "Mrs";
T.Text ="Mrs";
titles.Add(T);
T= new TextValue();
T.Value = "Miss";
T.Text = "Miss";
titles.Add(T);
T= new TextValue();
T.Value ="Other";
T.Text = "Other";
titles.Add(T);
return titles;
}
2 ответа:
Вы должны использовать другой ctor SelectList
От msdn
SelectList(IEnumerable, String, String, Object)
Инициализирует новый экземпляр класса SelectList с помощью указанные элементы для списка, поле значения данных, текст данных поле и выбранное значение .
Затем:
@Html.DropDownListFor(model => model.title, new SelectList(Model.titles, "Value", "Text", Model.title), "-Select-")
Кстати, в целом неплохо следовать базовым стандартам (по крайней мере) : ваши свойства должны начинаться с символа верхнего регистра.
public string Title {get;set;}
Просмотры:
@Html.DropDownListFor(model => model.title, Model.titles, "-Select-")
Контроллеры:
Model.titles = new SelectList(ListItem.getValues(), "Value", "Text"); public static List<SelectListItem> getValues() { List<SelectListItem> titles= new List<SelectListItem>(); SelectListItem T= new SelectListItem(); T.Value = "Mr"; T.Text = "Mr"; titles.Add(T); T = new SelectListItem(); T.Value = "Mrs"; T.Text = "Mrs"; titles.Add(T); T = new SelectListItem(); T.Value = "Miss"; T.Text = "Miss"; titles.Add(T); T = new SelectListItem(); T.Value = "Other"; T.Text = "Other"; titles.Add(T); return titles; } public ActionResult Edit(int sno) { var model = db.table.SingleOrDefault(x => x.sno == sno); return View(model); }