Um Remote-Validierung stehen ganze Sie die folgenden Ihrer Ansicht nach Modell haben:Ist es möglich, eine allgemeine Remoteüberprüfung in ASP.NET MVC zu verwenden?
public class ViewModelOne {
[Required]
[Remote("CheckStringIsRed", "RemoteValidationController", ErrorMessage = "It's not red.")]
public string BgColour { get; set; }
}
und dann irgendwo eine Aktion in einem Controller haben:
public JsonResult CheckStringIsRed(string BgColour) {
return Json(BgColour == "Red");
}
aber sagen, dass ich an anderer Stelle die gleiche Validierung durchgeführt werden soll, so :
public class ViewModelOne {
[Required]
[Remote("CheckStringIsRed", "RemoteValidationController", ErrorMessage = "It's not red.")]
public string SomeColour { get; set; }
}
Beachten Sie, wie der Name der Eigenschaft die jetzt SomeColour ist, bedeutet, den Anruf zu Das ursprüngliche CheckStringIsRed() wird fehlschlagen. Gibt es eine Möglichkeit, CheckStringIsRed() wiederzuverwenden, wenn man bedenkt, dass die Parameternamen unterschiedlich sind? Ich möchte die Validierung nur einmal schreiben und sie auf may-Eigenschaften verwenden.
Kurze Antwort - Nein, der 'RemoteAttribute' fügt' Daten val' Attribute, die 'jquery.validate.unobtrusive.js' verwendet, um Hinzufügen von Regeln zu 'jquery.validate.js' basierend auf dem Namen der Eigenschaft. Sie müssten Ihren eigenen Ajax-Call implementieren, um Ihre Wünsche zu erreichen. –
@StephenMuecke Bummer .... Wenn du das als Antwort posten willst, werde ich akzeptieren. – TheEdge
Interessant ist, dass Ihre Klassennamen darauf hindeuten, dass Sie die Best Practice befolgen und Ansichtsmodelle verwenden. Warum also nicht einfach einen allgemeinen Eigenschaftennamen verwenden? –