2012-04-06 21 views
5

Tôi có trường nhập dữ liệu mà tôi đang thu thập ghi chú. Phần tử dữ liệu ghi chú là bắt buộc cho mỗi ghi chú. Đây là mô hình của tôi:asp.net mvc TextAreaFor không được xác nhận là trường bắt buộc

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

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

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

Bạn có thể thấy rằng tôi có thuộc tính Bắt buộc cho thuộc tính Ghi chú.

Tôi đang sử dụng Razor để hiển thị dưới dạng yếu tố nhập dữ liệu:

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

Khi tôi sử dụng "@ Html.TextAreaFor" thì không có xác nhận cho các trường bắt buộc và tôi có thể gửi biểu mẫu. Tuy nhiên, nếu tôi thay đổi thành "@ Html.TextBoxFor", thì xác thực sẽ xảy ra cho trường bắt buộc và tôi không thể gửi biểu mẫu. Bất kỳ ý tưởng về lý do tại sao xác nhận không thành công cho TextAreaFor? Tôi đang sử dụng ajax không phô trương và là jQueryMobile.

Cảm ơn sự giúp đỡ của bạn.

Trả lời

7

Xác thực phía máy khách không hoạt động cho trình trợ giúp Html.TextAreaFor(), đây là related issue reported on Codeplex.

Để làm cho nó hoạt động, bạn phải trang trí thuộc tính 'Ghi chú' với thuộc tính [DataType(DataType.MultilineText)]. Và trong chế độ xem, hãy sử dụng trợ giúp Html.EditorFor() thay vì trợ giúp Html.TextAreaFor() mehthod.

Cập nhật mẫu:

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

Xem:

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

+1 việc tuyệt vời xung quanh và explantion – Liam

Các vấn đề liên quan