validate validar mvc language formulario form jquery-mobile razor unobtrusive-validation

jquery-mobile - mvc - validar formulario jquery validate



asp.net mvc TextAreaFor no se valida como un campo obligatorio (1)

Tengo un campo de entrada de datos donde estoy recopilando notas. El elemento de datos de nota es requerido para cada nota. Aquí está mi modelo:

public interface INoteDataEntryViewModel : IMobilePageDataContract { int CourseId { get; set; } [Required(ErrorMessage = @"Note is required")] String Note { get; set; } [DisplayName(@"Note Date")] DateTime NoteDate { get; set; } }

Puede ver que tengo el atributo Requerido para la propiedad Nota.

Estoy usando Razor para mostrar el elemento de formulario de entrada de datos:

<div data-role="fieldcontain"> @Html.LabelFor(m => m.Note) @Html.TextAreaFor(m => m.Note) @Html.ValidationMessageFor(m => m.Note) </div>

Cuando uso "@ Html.TextAreaFor", no hay validación para el campo requerido y puedo enviar el formulario. Sin embargo, si cambio a "@ Html.TextBoxFor", la validación ocurre para el campo requerido y no puedo enviar el formulario. ¿Alguna idea sobre por qué la validación falla para TextAreaFor? Estoy usando discretamente ajax y soy jQueryMobile.

Gracias por tu ayuda.


La validación del lado del cliente no funciona para el helper Html.TextAreaFor (), aquí está el problema relacionado informado en Codeplex .

Para que funcione, debe decorar la propiedad ''Nota'' con el atributo [DataType(DataType.MultilineText)] . Y en la vista, use Html.EditorFor() helper en lugar de Html.TextAreaFor() helper mehthod.

Modelo actualizado:

public interface INoteDataEntryViewModel : IMobilePageDataContract { int CourseId { get; set; } [Required(ErrorMessage = @"Note is required")] [DataType(DataType.MultilineText)] String Note { get; set; } [DisplayName(@"Note Date")] DateTime NoteDate { get; set; } }

Ver:

<div data-role="fieldcontain"> @Html.LabelFor(m => m.Note) @Html.EditorFor(m => m.Note) @Html.ValidationMessageFor(m => m.Note) </div>