jquery-mobile – asp.net mvc TextAreaFor未被验证为必填字段

前端之家收集整理的这篇文章主要介绍了jquery-mobile – asp.net mvc TextAreaFor未被验证为必填字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据录入字段,我正在收集笔记.每个音符都需要音符数据元素.这是我的模特:
public interface INoteDataEntryviewmodel : IMobilePageDataContract
{
    int CourseId { get; set; }

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

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

您可以看到我有Note属性required属性.

我正在使用Razor来显示数据输入表单元素:

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

当我使用“@ Html.TextAreaFor”时,没有对必填字段进行验证,我可以提交表格.但是,如果我更改为“@ Html.TextBoxFor”,则会对必填字段进行验证,但我无法提交表单.关于TextAreaFor验证失败原因的任何想法?我正在使用不引人注目的ajax并且是jQueryMobile.

谢谢你的帮助.

解决方法

客户端验证不适用于Html.TextAreaFor()帮助程序,这里是 related issue reported on Codeplex.

要使其工作,您必须使用[DataType(DataType.MultilineText)]属性修饰’Note’属性.在视图中,使用Html.EditorFor()帮助程序而不是Html.TextAreaFor()帮助程序mehthod.

更新型号:

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

视图:

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

猜你在找的jQuery相关文章