J'ai lu des annotations de données (c'est-à-dire Scott Guthrie's blog post) et je suis ravi de l'idée d'avoir une logique de validation en un seul endroit.Annotations de données pour un sous-ensemble de propriétés
Est-ce que quelqu'un a été capable d'utiliser cette technique avec succès lorsqu'il a invité l'utilisateur à entrer un sous-ensemble des propriétés associées à une classe donnée?
Par exemple (pseudo-code) ...
public class Person
{
[Required]
public string Name
[Required]
public string Email
}
Alors disons que vous avez une vue qui affiche une forme uniquement avec le nom. La valeur de ModelState.IsValid dans le contrôleur HttpPost pour cette vue sera toujours false, car Email est requis et manquant. J'ai pensé à avoir des modèles séparés, un pour la partie qui ne nécessite que le nom, et un autre pour la partie qui nécessite à la fois Nom et Email, mais je brise le principe de DRY parce que je vais avoir le nom logique de validation à deux endroits.
Des suggestions? Peut-on obtenir des annotations de données fonctionnant de cette manière? Devrais-je simplement avoir deux classes distinctes? Peut-être un CustomValidationAttribute qui vérifie un drapeau avant de déterminer si un courriel est requis?
Je ne suis pas du genre à m'attribuer ma propre réponse, mais je vois que Steve Sanderson s'est attaqué à cela sur http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc- 2/- si quelqu'un veut lire et poster une réponse ... :) – Mayo
le comportement par défaut de MVC 1 a été changé pour une bonne raison. Je ferais vraiment très attention à la solution de Steve. – jfar