我正在使用MVC 4,EF 4.3和MVCScaffolding包。
我有以下简单的模型类
public class Product
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public virtual Category Category { get; set; }
}
public class Category
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
我像这样搭建了控制器:
Scaffold Controller Category -Force
Scaffold Controller Product -Force
这会生成控制器/视图等。
Per Steve sanderson's post我认为产品的_CreateOrEdit.cshtml会包含类别的下拉列表,但事实并非如此。
Followng是_CreateOrEdit.cshtml的内容,它不包含任何类别的html模板
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
我做错了什么?
答案 0 :(得分:3)
我认为您还需要在Product类上拥有属性CategoryID。它不是虚拟的,因为您希望EntityFramework将其作为外键保存在DB中。
尝试添加它并再次将它们搭建以确定它是否为您提供了下拉菜单。你认为它应该是正确的。
同样惯例是ID字段是键,所以我认为你不需要[Key]属性。