1
我创建了一个asp.net应用程序与以下域实体:Asp.net MVC深验证
public class Person
{
[Required]
public string name { get; set; }
public string address { get; set; }
public ICollection<Item> ItemsPurchased { get; set;}
}
public class Item
{
[Required]
public string name { get; set; }
public int price { get; set; }
}
与视图模型
public class PersonViewModel
{
public Person Entity { get; set; }
public Item ItemPurchased { get; set; }
}
现在我有一个要求输入一个形式的人的细节以及购买的物品(如果有)
Html.Label("Person Name")
Html.TextboxFor(model => model.Entity.name)
Html.ValidationMessageFor(model => model.Entity.name)
Html.Label("Item Name")
Html.TextboxFor(model => model.ItemPurchased.name)
Html.ValidationMessageFor(model => model.ItemPurchased.name)
Html.Label("Item Price")
Html.TextboxFor(model => model.ItemPurchased.Price)
Html.ValidationMessageFor(model => model.ItemPurchased.Price)
最后在控制器中,我要添加项目(如果它是给n由用户)添加到集合中。
if(!this.ModelState.IsValid)
{
//Return the view with validation errors
}
主要问题
现在,如果不给项目名称的价值,它给了我“这个名字字段是必需”的验证错误。但是我想仅删除此表单的项目对象属性的验证。我怎样才能做到这一点?