3
我有以下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; }
}
用於產品的創建視圖使用此視圖模型。類別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>
當表單帖子中,我得到一個產品和所選擇的類別對象集,但因爲視圖模型的實例類的「名稱」屬性有ModelState的[必需]屬性無效。
就創建產品而言,我不需要或不關心「名稱」屬性。我如何獲得模型綁定以使其不會作爲ModelState錯誤報告?
有道理,唯一的副作用是,您將不得不在所有視圖模型類上重複模型驗證不是或者是否存在針對此的推薦方法? – 2012-04-12 01:39:32
最後你會有兩個驗證層。一個「客戶端」通過視圖模型和一個「服務器端」通過您的業務邏輯層應該是 – Iridio 2012-04-12 05:10:24