Ich benutze xval, um clientseitige Validierung in meiner asp.net mvc2 Web-Anwendung zu verwenden. Trotz der Fehler, die es gibt, wenn ich Text in ein numerisches Feld einfüge, versucht es immer noch, das Formular an die Datenbank zu senden. Die falschen Werte werden durch 0 ersetzt und in der Datenbank gespeichert. Stattdessen sollte es nicht einmal möglich sein, das Formular zu senden. Kann mir hier jemand helfen?C# mvc2 clientseitige Formularvalidierung mit xval, verhindern Beitrag
Ich habe die Attribute, wie im Folgenden beschrieben:
[Property]
[ShowColumnInCrud(true, label = "FromPriceInCents")]
[Required]
//[Range(1, Int32.MaxValue)]
public virtual Int32 FromPriceInCents{ get; set; }
Der Controller die Anforderung, wie unten schaut zu kontrollieren; Ich bekomme keine Fehler in diesem Teil.
[AcceptVerbs(HttpVerbs.Post)]
[Transaction]
[ValidateInput(false)]
public override ActionResult Create()
{
//some foo happens
}
Meine Ansicht sieht unten wie:
<div class="label"><label for="Price">FromPrice</label></div>
<div class="field">
<%= Html.TextBox("FromPriceInCents")%>
<%= Html.ValidationMessage("product.FromPriceInCents")%></div>
Und am Ende der Ansicht i die folgende Regel haben, die in HTML-Code erzeugt die richtigen Validierungsregeln
<%= Html.ClientSideValidation<Product>("Product") %>
Ich hoffe, jemand kann mir mit diesem Problem helfen, danke im Voraus!
BEARBEITEN: 19. April Ich habe gerade herausgefunden, dass es eine normale Schaltfläche mit verwendet wird anstelle einer Eingabe type = "Button" Könnte dies das Problem sein?
<button class="save" type="submit" name="save"><span>Opslaan</span></button>
Warum ist Ihre Validation ("product.FromPriceInCents"), aber Ihre Textbox verwendet "FromPriceInCents"? Dies scheint verdächtig. Gibt es einen Grund, warum Sie die stark typisierten Helfer nicht benutzen? ValidationMessageFor (x => x.FromPriceInCents) – Jab
Ich habe die Textboxen und Validierungsnachrichten in stark typisierte Helfer geändert. Aber diese Änderung hat keinen Einfluss auf die Validierung, trotzdem guter Tipp! – Rob