2012-04-06 25 views
5

Notlarımı topladığım bir veri giriş alanı var. Her nota için not veri elemanı gereklidir. Benim modelim:asp.net mvc TextAreaFor gerekli alan olarak doğrulanmıyor

Not özelliği için gerekli özniteliğe sahip olduğumu görebilirsiniz.

Ben veri giriş formu öğeyi görüntüleyecek Razor kullanıyorum: Ben kullandığınızda

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

"@ Html.TextAreaFor" o zaman zorunlu alan için geçerliliği bulunmamaktadır ve ben formu gönderebilirsiniz. Ancak, "@ Html.TextBoxFor" olarak değiştirirseniz, gerekli alan için doğrulama gerçekleşir ve formu gönderemiyorum. TextAreaFor için doğrulama neden başarısız olduğu hakkında herhangi bir fikir? Göze batmayan ajax kullanıyorum ve jQueryMobile.

Yardımlarınız için teşekkürler.

cevap

7

İstemci doğrulaması, Html.TextAreaFor() yardımcısı için çalışmıyor, işte related issue reported on Codeplex.

Çalıştırmak için, 'Not' özelliğini [DataType(DataType.MultilineText)] özniteliğiyle dekore etmeniz gerekir. Ve görünümde, Html.TextAreaFor() yardımcısı mehthod yerine Html.EditorFor() yardımcısını kullanın.

Güncelleme Model:

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

Görünüm:

<div data-role="fieldcontain"> 
    @Html.LabelFor(m => m.Note) 
    @Html.EditorFor(m => m.Note) 
    @Html.ValidationMessageFor(m => m.Note) 
</div> 
+1 mükemmel çalışma etrafında
+0

ve explantion – Liam