Estoy usando "jQuery Validate discreto" con ASP.NET MVC3 Razor.jQuery Validate Unobtrusive no funciona para TextArea
Tengo una página con un formulario "Comentarios", así:
Modelo
public class CommentModel
{
[Required]
public string Name { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[DataType(DataType.Url)]
[Display(Name = "Website URL")]
public string WebsiteUrl { get; set; }
[Required]
public string Message { get; set; }
}
Ver
@using (Html.BeginForm("AddComment", "Blog", new { @articleID = article.ID }))
{
<p>
@Html.LabelFor(m => m.commentModel.Name)
@Html.TextBoxFor(m => m.commentModel.Name)
@Html.ValidationMessageFor(m => m.commentModel.Name)
</p>
<p>
@Html.LabelFor(m => m.commentModel.Email)
@Html.TextBoxFor(m => m.commentModel.Email)
@Html.ValidationMessageFor(m => m.commentModel.Email)
</p>
<p>
@Html.LabelFor(m => m.commentModel.WebsiteUrl)
@Html.TextBoxFor(m => m.commentModel.WebsiteUrl)
@Html.ValidationMessageFor(m => m.commentModel.WebsiteUrl)
</p>
<p>
@Html.LabelFor(m => m.commentModel.Message)
@Html.TextAreaFor(m => m.commentModel.Message)
@Html.ValidationMessageFor(m => m.commentModel.Message)
</p>
<p>
<input type="submit" value="Submit Comment" />
</p>
}
Sin embargo, cuando se envía el formulario, solo Name
y Email
devuelven un error de validación, cuando Message
debe ser demasiado:
Si cambio Message
TextAreaFor
-TextBoxFor
, entonces la validación funciona correctamente.
¿Por qué es esto y cómo puedo obtener la validación para trabajar en mi cuadro de texto?
También vale la pena señalar que no he tenido que escribir ningún jQuery específico para este formulario. Seguí un tutorial que explica que esto no es necesario ya que todo es manejado por MVC3.
¿Puede incluir el código de su controlador? Además, ¿incluyó ambos jquery.validate y jquery.validate.unobtrusive en su diseño o vista? –
@ ron.defreitas ¿Qué método de controlador? Seguramente el método 'HttpPost' no sería relevante porque esto no se alcanza porque la validación del lado del cliente lo está impidiendo. Revisé mi archivo de diseño, he incluido: 'jquery-1.5.1.min.js',' jquery.validate.min.js' y 'jquery.validate.unobtrusive.js'. – Curt
¿Puede ver el origen representado de su formulario y asegurarse de que el atributo de validación de datos se haya agregado al área de texto como el resto de los campos? ¿Has intentado recorrer el POST de tu formulario para ver si el backend piensa que hay entradas en la caja? –