Estoy usando xval para usar la validación del lado del cliente en mi asp.net mvc2 web-application. A pesar de los errores que se producen cuando ingreso texto en un campo numérico, todavía intenta publicar el formulario en la base de datos. Los valores incorrectos se reemplazan por 0 y se guardan en la base de datos. Pero, en cambio, ni siquiera debería ser posible intentar enviar el formulario. ¿Puede alguien ayudarme aquí?C# mvc2 validación del formulario del lado del cliente con xval, prevenir publicación
He puesto los atributos como abajo:
[Property]
[ShowColumnInCrud(true, label = "FromPriceInCents")]
[Required]
//[Range(1, Int32.MaxValue)]
public virtual Int32 FromPriceInCents{ get; set; }
El controlador de captura de la solicitud se ve de la siguiente manera; No recibo errores en esta parte.
[AcceptVerbs(HttpVerbs.Post)]
[Transaction]
[ValidateInput(false)]
public override ActionResult Create()
{
//some foo happens
}
Mi vista se parece a continuación:
<div class="label"><label for="Price">FromPrice</label></div>
<div class="field">
<%= Html.TextBox("FromPriceInCents")%>
<%= Html.ValidationMessage("product.FromPriceInCents")%></div>
Y al final de la vista tengo la siguiente regla que en el código HTML genera las reglas de validación correctas
<%= Html.ClientSideValidation<Product>("Product") %>
espero alguien puede ayudarme con este problema, ¡gracias de antemano!
EDIT: 19 de abril de Acabo de descubrir que hay un botón normal con ser utilizado en lugar de un tipo de entrada = "Botón" ¿Podría ser este el problema?
<button class="save" type="submit" name="save"><span>Opslaan</span></button>
Por qué es su ValidationMessage ("product.FromPriceInCents"), pero el cuadro de texto utiliza "FromPriceInCents"? Esto parece sospechoso. ¿Hay alguna razón por la que no estés utilizando los ayudantes fuertemente tipados? ValidationMessageFor (x => x.FromPriceInCents) – Jab
Cambié los cuadros de texto y los mensajes de validación a los helpers fuertemente tipados. ¡Pero este cambio no afecta la validación, sin embargo, buen consejo! – Rob