2009-07-28 3 views
0

Ich habe eine benutzerdefinierte Validierungsprüfung, die ich auf dem Server sidie ​​(.net mvc) durchführen.Mit jqueries Validierung Plugin, wie ein Fehler von der Server-Seite auf die Client-Seite senden?

Wenn es fehlschlägt, möchte ich den Benutzer mit einer Nachricht neben dem Eingabefeld benachrichtigen (wie jqueries Validierung Plugin out of Box funktioniert).

Gibt es eine eingebaute Funktion (im Validierungs-Plugin), die ich aufrufen kann?

Update Die Lösung wäre idealerweise die Verwendung des Plugins selbst, vielleicht gibt es einen Methodenaufruf, den ich verwenden kann?

Antwort

1

Es gibt ein Open-Source-Projekt namens xVal, das dies tut. Hier ein Auszug aus der Projekthomepage:

Projektbeschreibung xVal ist ein Validierungsframework für ASP.NET MVC Anwendungen. Es macht es einfach Ihre Wahl der Server-Seite Validierungsmechanismus mit Ihrer Wahl der Client-Seite Validierungsbibliothek, ordentlich passen sowohl in ASP.NET MVC Architektur und Konventionen. Features

  • Definieren Sie Ihre Validierungsregeln Attribute auf Modell-Eigenschaften verwenden, z.B.

    [Erforderlich] [StringLength (50)] public string Name {get; einstellen; }

  • entwickelt, um fit in ASP.NET MVC-Konventionen (Oder, wenn Sie möchten, können Sie Regeln programmatisch oder Sie können nur fest einprogrammieren sie in bestimmten Ansichten liefern) für Formularbeiträge bearbeiten und Fehler speichern und abrufen Informationen in ModelState
  • Verwenden Sie Ihre Wahl der serverseitigen Validierung Framework. Sofort einsatzbereit Mit xVal können Sie die in .NET 3.5 integrierten DataAnnotations-Klassen oder Castle Validator (oder beide) verwenden. Wenn Sie etwas anderes verwenden möchten, können Sie Ihren eigenen Provider nur durch Implementierung von IRulesProvider erstellen.
  • Verwenden Sie Ihre Wahl der clientseitigen Validierungsbibliothek. Im Lieferumfang enthalten: xVal ermöglicht die Verwendung von jQuery Validation oder ASP.NETs nativen clientseitigen Validierungsbibliothek (a.k.a. WebUIValidation.js, wie von WebForms verwendet). Oder verwenden Sie eine andere clientseitige Validierungsbibliothek, indem Sie ein Plug-In schreiben, um es zu konfigurieren mit xVal Standard-JSON-Regeln Beschreibung Format.
  • Unterstützt lokalisierte Fehlermeldungen mit Ressourcendateien. Variieren Sie die Sprache Ihrer Validierung Nachrichten gemäß der aktuellen Thread-Kultur.
  • benutzerdefinierte Validierungslogik hinzufügen, die sowohl auf dem Server ausgeführt wird und auf dem Kunden entweder durch eine bestehende Regel Subklassen oder durch eine benutzerdefinierte JavaScript-Funktion Referenzierung
0

Sie eine benutzerdefinierte Validierungsfunktion erstellen können und verbinde es mit einem Ajax-Ruf. In diesem Fall gibt der Ajax-Aufruf den Text 'wahr' oder 'falsch' zurück.

var customFunction = function(value, element, param) { 
    var isValid = false; 
    $.ajax({ 
     url: '/something', 
     data:{value: value}, 
     success: function(data, textStatus) {isValid = data;}, 
     dataType: 'json', 
     async: false 
    }); 
    return isValid; 
}; 

$.validator.addMethod("customFunction", customFunction, "That isn't valid."); 

$('form').validate({ 
    rules: { 
     fieldname: { 
      customFunction: true 
     } 
    } 
}); 

bearbeiten: Eigentlich die Remote-Methode verwenden, die svinto stattdessen erwähnt. Ich wusste nicht einmal, dass es existiert. Ich bin ein Narr.

2

Ja, es gibt an example davon.

Sie im Grunde rules: {FIELD: {remote: "URL"}}, dann zur Validierung ein Aufruf an URL?FIELD=value und auf dem Server vorgenommen wird Sie zurückkommen true oder false.