Я очень новичок в MVC и пытаюсь сделать проект. У меня есть модель продукта, созданная из базы данных. Он обладает такими свойствами, как ниже (теперь я пишу все свойства.)
Product
-------
ID(int)
CODE(string)
CATEGORY_ID(int)
Categories
-------
ID(int)
CODE(string)
Я создал Create ActionResult для продукта. И поскольку CATEGORY_ID является целым числом в базе данных, Visual Studio создала текстовое поле для CATEGORY_ID. Я хочу, чтобы это был dropdownlist, который отобразит все категории из таблицы Categories. Но когда пользователь нажмет кнопку "Сохранить", он будет записывать целочисленное значение выбранной категории в таблицу Product.
Как я могу сделать этот dropdownlist? Как передать все категории в Product Create ActionResult?
Вы хотите использовать ViewModel для формирования вашей модели БД в целях презентации.
В классе модели Продукт добавьте следующее,
[NotMapped]
public SelectList Categories { get; set; }
в поле зрения добавить
@Html.DropDownListFor(model => model.CategoryID, Model.Categories, "--Select--", new { @id="drpCommodity"})
заполнить Категории при использовании следующих
public static SelectList GetDropDownList<T>(List<T> objects, string value, string text)
{
List<SelectListItem> items = new List<SelectListItem>();
//var defaultItem = new SelectListItem();
//defaultItem.Value = Convert.ToString(-1);
//defaultItem.Text = "--Select--";
//defaultItem.Selected = true;
//items.Add(defaultItem);
List<SelectListItem> lst = objects
.Select(x =>
new SelectListItem
{
Value = x.GetType().GetProperty(value).GetValue(x).ToString(),
Text = x.GetType().GetProperty(text).GetValue(x).ToString()
}).ToList();
items.AddRange(lst);
return new SelectList(items, "Value", "Text");
}