ich glaube, Sie dies mit benutzerdefinierten Validierung in MVC implementieren können. Versuchen Sie dies mit:
[ValidateDateRange]
public DateTime StartWork { get; set; }
Hier ist Ihre benutzerdefinierte Validierung Implementierung:
namespace MVCApplication
{
public class ValidateDateRange: ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// your validation logic
if (value >= Convert.ToDateTime("01/10/2008") && value <= Convert.ToDateTime("01/12/2008"))
{
return ValidationResult.Success;
}
else
{
return new ValidationResult("Date is not in given range.");
}
}
}
}
UPDATE:
Sie auch als Parameter Datumsbereiche passieren können, um die Validierung eine generische zu machen:
[ValidateDateRange(FirstDate = Convert.ToDateTime("01/10/2008"), SecondDate = Convert.ToDateTime("01/12/2008"))]
public DateTime StartWork { get; set; }
Benutzerdefinierte Validierung:
namespace MVCApplication
{
public class ValidateDateRange: ValidationAttribute
{
public DateTime FirstDate { get; set; }
public DateTime SecondDate { get; set; }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// your validation logic
if (value >= FirstDate && value <= SecondDate)
{
return ValidationResult.Success;
}
else
{
return new ValidationResult("Date is not in given range.");
}
}
}
}
UPDATE 2: (für Client-Seite) Eine sehr einfache jQuery Logik sollte die Client-Validierung tun. Unten:
$(document).ready(function(){
$("#btnSubmit").click(function(){
var dt = $("#StartWork").val();
var d = new Date(dt);
var firstDate = new Date("2008-01-10");
var secondDate = new Date("2008-01-12");
if(d>= firstDate && d<= secondDate)
{
alert("Success");
}
else
{
alert("Date is not in given range.");
}
});
});
überprüfen Sie bitte diese JSFiddle die Arbeits Demo zu sehen: Date Range Validation
Dies ist die Route, die ich nehmen würde, aber ich würde auch den Datumsbereich hinzufügen, um als Parameter zu validieren, so dass der Code für alle Arten von Datumsbereichen wieder verwendet werden kann – JensB
Danke, werde ich versuche diesen Vorschlag! – MrScf
Überprüfen Sie das Update. Bitte akzeptieren Sie die Antwort, wenn es funktioniert. – Saket