J'ai créé une application asp.net avec les entités suivantes de domaine:Asp.net validation profonde 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; }
}
avec viewmodel
public class PersonViewModel
{
public Person Entity { get; set; }
public Item ItemPurchased { get; set; }
}
Maintenant, j'ai est une forme qui demande d'entrer une personne détails ainsi que des articles achetés (le cas échéant)
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)
Et enfin dans le contrôleur, je vais ajouter l'article (si elle est de donner n par l'utilisateur) à la collection.
if(!this.ModelState.IsValid)
{
//Return the view with validation errors
}
Problème principal
Maintenant, si ne donne pas la valeur du nom de l'élément, il me donne une erreur de validation « Le champ de nom est nécessaire ». Mais je veux supprimer la validation sur les attributs d'objet d'élément pour ce formulaire seulement. Comment puis je faire ça?