我对MVC很新,并尝试做一个项目。我有从数据库创建的产品型号。它具有如下属性(我现在正在编写所有属性。)
Product
-------
ID(int)
CODE(string)
CATEGORY_ID(int)
Categories
-------
ID(int)
CODE(string)
我创建了Create ActionResult for Product。由于CATEGORY_ID在数据库中是整数,因此Visual Studio为CATEGORY_ID创建了一个文本框。我希望它是dropdownlist,它将列出Categories表中的所有类别。但是当用户单击Save按钮时,它会将所选类别的整数值写入Product表。
我该怎么做那个下拉列表?如何将所有类别传递给Product的Create ActionResult?
答案 0 :(得分:1)
您希望使用ViewModel将数据库模型塑造为演示目的。
答案 1 :(得分:0)
在模型类产品中添加以下内容,
[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");
}