Tom*_*eck 6 razor jquery-mobile 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; }
}
Run Code Online (Sandbox Code Playgroud)
您可以看到我有Note属性的Required属性.
我正在使用Razor来显示数据输入表单元素:
<div data-role="fieldcontain">
@Html.LabelFor(m => m.Note)
@Html.TextAreaFor(m => m.Note)
@Html.ValidationMessageFor(m => m.Note)
</div>
Run Code Online (Sandbox Code Playgroud)
当我使用"@ Html.TextAreaFor"时,没有对必填字段进行验证,我可以提交表格.但是,如果我更改为"@ Html.TextBoxFor",则会对必填字段进行验证,但我无法提交表单.关于TextAreaFor验证失败原因的任何想法?我正在使用不引人注目的ajax并且是jQueryMobile.
谢谢你的帮助.
客户端验证不适用于Html.TextAreaFor()帮助程序,这是Codeplex上报告的相关问题.
要使其工作,您必须使用该[DataType(DataType.MultilineText)]属性修饰"Note" 属性.在视图中,使用Html.EditorFor()helper而不是Html.TextAreaFor()helper方法.
更新型号:
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; }
}
Run Code Online (Sandbox Code Playgroud)
视图:
<div data-role="fieldcontain">
@Html.LabelFor(m => m.Note)
@Html.EditorFor(m => m.Note)
@Html.ValidationMessageFor(m => m.Note)
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |