J'utilise xval pour utiliser la validation côté client dans mon application web asp.net mvc2. Malgré les erreurs qu'il donne quand je saisis du texte dans un champ numérique, il essaie toujours d'afficher le formulaire dans la base de données. Les valeurs incorrectes sont remplacées par 0 et enregistrées dans la base de données. Mais au lieu de cela, il ne devrait même pas être possible d'essayer de soumettre le formulaire. Est-ce que quelqu'un pourrait m'aider?C# mvc2 validation de formulaire côté client avec xval, prévenir poste
J'ai mis les attributs ci-dessous:
[Property]
[ShowColumnInCrud(true, label = "FromPriceInCents")]
[Required]
//[Range(1, Int32.MaxValue)]
public virtual Int32 FromPriceInCents{ get; set; }
Le contrôleur attrapant la demande se présente comme ci-dessous; Je ne reçois aucune erreur dans cette partie.
[AcceptVerbs(HttpVerbs.Post)]
[Transaction]
[ValidateInput(false)]
public override ActionResult Create()
{
//some foo happens
}
Mon point de vue ressemble ci-dessous:
<div class="label"><label for="Price">FromPrice</label></div>
<div class="field">
<%= Html.TextBox("FromPriceInCents")%>
<%= Html.ValidationMessage("product.FromPriceInCents")%></div>
Et à la fin de la vue que j'ai la règle suivante qui code html génère les règles de validation correctes
<%= Html.ClientSideValidation<Product>("Product") %>
J'espère Quelqu'un peut m'aider avec ce problème, merci d'avance!
EDIT: 19 avril Je viens de découvrir qu'il existe un bouton normal à utiliser à la place d'un type d'entrée = "Button" Serait-ce le problème?
<button class="save" type="submit" name="save"><span>Opslaan</span></button>
Pourquoi votre ValidationMessage ("product.FromPriceInCents") mais votre zone de texte utilise "FromPriceInCents"? Cela semble suspect. Y a-t-il une raison pour laquelle vous n'utilisez pas les helpers fortement typés? ValidationMessageFor (x => x.FromPriceInCents) – Jab
J'ai modifié les zones de texte et les messages de validation pour les helpers fortement typés. Mais ce changement n'affecte pas la validation, néanmoins bon conseil! – Rob