2012-03-29 17 views
0

Wenn ich meine Hände auf Sonderzeichen in den Eingabefeldern meines Formulars bash, wenn ich auf "Senden" klicke, bekomme ich nur eine leere Seite zurück, wie ASP.NET erkannt potenziell bösartige Eingabe und warf einen Fehler in mein Ereignisprotokoll, bevor meine MVC-Controller-Aktion erreicht.ASP.NET-Eingabevalidierung nach Verwendung von ValidateInput (false) aufrufen

Ich würde lieber einen Fehler an den Benutzer zurückgeben, so dass sie nicht nur eine leere Seite bekommen. Also möchte ich ValidateInput (false) verwenden und dann den Validator von meinem Code aus aufrufen, damit ich eine Antwort senden kann. Wie rufe ich den Validator von einer ASP.NET MVC-Aktion auf?

Antwort

1

Ich bin etwas verwirrt mit Ihrer Frage. Sind Sie auf der Suche nach dem Aufruf des Codes, der die Modellvalidierung tut? Wenn ja, können Sie das tun, indem Sie die ModelState.IsValid-Eigenschaft überprüfen. Wenn eine Ihrer Validierungen fehlschlägt, wird false zurückgegeben und aus Ihrer Sicht werden die Fehlermeldungen angezeigt. Sie können auch einige benutzerdefinierte Fehlermeldungen von Ihrer Aktionsmethode angeben, wenn Sie dies möchten.

[HttpPost] 
public ActionResult LogOn(LogOnModel model, string returnUrl) 
{ 
    if (ModelState.IsValid) 
    { 
     //Model validation is successful. Proceed to other stuff 

     //If you want to return some custom error message, do like this 
     ModelState.AddModelError("", "The user name is deactivated"); 

    } 
return View(model); 
} 
0

Möchten Sie die Eingabe auf der Serverseite überprüfen?

Sie können die clientseitige Validierung verwenden, Sie müssen ein Attribut für reguläre Ausdrücke in Ihre Modelleigenschaft einfügen und eine nette Fehlermeldung dafür setzen. wie unter

Verwandte Themen