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

标签 jquery-mobile razor unobtrusive-validation

我有一个数据输入字段,用于收集笔记。每个音符都需要音符数据元素。这是我的模型:

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”属性。属性。在 View 中,使用 Html.EditorFor()助手而不是 Html.TextAreaFor()辅助方法。

更新型号:

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-mobile - asp.net mvc TextAreaFor 未被验证为必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045964/

相关文章:

javascript - jQuery Mobile 加载微调器无法在移动设备上运行

visual-studio - 如何在不重新编译的情况下进行非 c# cshtml 更改并查看结果?

asp.net-mvc - ASP.NET MVC 5 Html.HiddenFor 呈现不正确的属性值,但 Model.Property 呈现正确的值

javascript - 如何检查 jquery 中选择的值是否可选(如果不抛出错误)?

jquery - MVC4 : jQuery Validation Unobtrusive Native working incorrectly

javascript - 从 JQM 中的页面调用函数

jquery - 添加背景图片和边框图片到表单中

javascript - 如何在 HTML 代码中生成 PDF(javascript : jspdf, downloadify??)

asp.net-mvc - 使用@Html.DropDownList() 添加要选择的 css 类

asp.net-mvc - @Html.ValidationMessageFor 检查是否为空