Attribut C # pour vérifier si une date est antérieure à l'autre
J'ai un ViewModel pour mon MVC4 Prject contenant deux DateTime propriétés:
[Required]
[DataType(DataType.Date)]
public DateTime RentDate { get; set; }
[Required]
[DataType(DataType.Date)]
public DateTime ReturnDate { get; set; }
Est-il une façon simple d'utiliser C# attributs comme [Compare("someProperty")]
de vérifier la météo la valeur de RentDate propriété est antérieure à celle de la valeur de ReturnDate?
source d'informationauteur cLar
Vous devez vous connecter pour publier un commentaire.
Voici une très rapide mise en œuvre de base (sans contrôle d'erreur, etc.) que devrait faire ce que vous demandez (seulement sur le côté serveur...il ne le fera pas asp.net côté client javascript de validation). Je n'ai pas testé, mais devrait être suffisant pour vous aider à démarrer.
On dirait que vous êtes en utilisant DataAnnotations donc une autre alternative est de mettre en œuvre
IValidatableObject
dans le modèle de vue:Si vous êtes en utilisant .Net Framework 3.0 ou supérieur, vous pourriez le faire comme une extension de classe...
Pas sûr d'utilisation du MVC/Rasoir, mais..
Vous pouvez utiliser DateTime.Comparer(t1, t2) - t1 et t2 étant le temps que vous voulez comparer. Elle retournera -1, 0 ou 1 selon quels en étaient les résultats.
Lire la suite ici:
http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx
Rien de semblable à ce qui existe dans le cadre. D'un commun similaires attribut est le
RequiredIf
. Il est décrit dans ce post.RequiredIf Conditionnelle De Validation De L'Attribut
Modèle:
Attribut de classe: