我有以下 2 个实体:
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; }
[Required]
public string Name { get; set; }
public ICollection<Product> Products { get; set; }
}
和一个视图模型
public class ProductCreateOrEditViewModel
{
public Product Product { get; set; }
public IEnumerable<Category> Categories { get; set; }
}
Product 的创建视图使用此 ViewModel。视图中的类别 ID 设置如下:
<div class="editor-field">
@Html.DropDownListFor(model => model.Product.Category.ID,new SelectList
(Model.Categories,"ID","Name"))
@Html.ValidationMessageFor(model => model.Product.Category.ID)
</div>
当表单发布时,我得到了一个带有产品和选定类别对象集的视图模型实例,但是由于 Category 的“Name”属性具有 [Required] 属性,ModelState 无效。
就创建产品而言,我不需要或关心“名称”属性。我怎样才能让模型绑定工作,这样它就不会被报告为 ModelState 错误?