Я создал частичный вид, представляющий административную часть блога. В моей модели я создал свойство и метод, показанные ниже.Сильно типизированная модель: как обрабатывать выпадающие списки?
public int HeaderImage { get; set; }
public IEnumerable<SelectListItem> GetHeaderImages()
{
List<SelectListItem> d = new List<SelectListItem>();
using (SqlConnection connection = new SqlConnection(
ConfigurationManager.ConnectionStrings["KineticBombardment"].ToString()))
{
using (SqlCommand cmd = new SqlCommand("select id, imagepath from blogheaderimages",
connection))
{
cmd.Parameters.Clear();
connection.Open();
cmd.ExecuteNonQuery();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
SelectListItem item = new SelectListItem();
item.Text = reader["id"].ToString();
item.Value = reader["imagepath"].ToString();
d.Add(item);
}
}
return d;
}
}
}
Вид:
<div class="input">
@Html.DropDownListFor(x => x.HeaderImage,
new SelectList(Model.HeaderImageList))
</div>
Теперь вся цель состояла в том, чтобы использовать GetHeaderImages()
для создания списка, а затем сохранить выбранное значение в HeaderImage
собственности и в конечном счете спасти к БД. Прямо сейчас, список выбора отображает, но вместо отображения текстовых значений он отображает весь объект System.Web.MVC.SelectListItem
.
Я предполагаю, что вопрос, который я задаю, - это идеальный способ построения списка выбора в модели (из источника данных), а затем заполнение другого свойства в этой модели с выбранным значением?
PLS голосуйте, если ответ вам помог – mattematico