2012-04-06 13 views
5

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:asp.net mvc TextAreaFor no está siendo validado como un campo obligatorio

public interface INoteDataEntryViewModel : IMobilePageDataContract 
{ 
    int CourseId { get; set; } 

    [Required(ErrorMessage = @"Note is required")] 
    String Note { get; set; } 

    [DisplayName(@"Note Date")] 
    DateTime NoteDate { get; set; } 
} 

Se puede ver que tengo el atributo requeridos para la propiedad Nota.

estoy usando la maquinilla de afeitar para visualizar la entrada de datos de elemento de formulario:

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

Cuando uso "@ Html.TextAreaFor", entonces 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 su ayuda.

Respuesta

7

La validación del lado del cliente no funciona para el helper Html.TextAreaFor(), aquí está el related issue reported on Codeplex.

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

Actualización del modelo:

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; } 
} 

Vista:

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

+1 excelente trabajo alrededor y explantion – Liam

Cuestiones relacionadas