asp.net mvc的TextAreaFor是没有得到证实为必填字段(asp.net mvc Te

2019-09-16 09:36发布

我在那里我收集笔记数据输入字段。 该说明数据元素需要每个音符。 这里是我的模型:

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

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

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

你可以看到,我对注属性必需属性。

我用剃刀来显示数据录入表单元素:

<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。

谢谢你的帮助。

Answer 1:

在客户端验证没有为Html.TextAreaFor()辅助工作,这里是报道Codeplex上相关的问题 。

为了使它工作,你必须与装饰“笔记”属性[DataType(DataType.MultilineText)]属性。 而在视图中,使用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>


文章来源: asp.net mvc TextAreaFor is not getting validated as a required field