Cur*_*urt 5 validation jquery textarea jquery-validate asp.net-mvc-3
我在ASP.NET MVC3 Razor中使用"jQuery Validate Unobtrusive".
我有一个带有"评论"表单的页面,如下所示:
模型
public class CommentModel
{
[Required]
public string Name { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[DataType(DataType.Url)]
[Display(Name = "Website URL")]
public string WebsiteUrl { get; set; }
[Required]
public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图
@using (Html.BeginForm("AddComment", "Blog", new { @articleID = article.ID }))
{
<p>
@Html.LabelFor(m => m.commentModel.Name)
@Html.TextBoxFor(m => m.commentModel.Name)
@Html.ValidationMessageFor(m => m.commentModel.Name)
</p>
<p>
@Html.LabelFor(m => m.commentModel.Email)
@Html.TextBoxFor(m => m.commentModel.Email)
@Html.ValidationMessageFor(m => m.commentModel.Email)
</p>
<p>
@Html.LabelFor(m => m.commentModel.WebsiteUrl)
@Html.TextBoxFor(m => m.commentModel.WebsiteUrl)
@Html.ValidationMessageFor(m => m.commentModel.WebsiteUrl)
</p>
<p>
@Html.LabelFor(m => m.commentModel.Message)
@Html.TextAreaFor(m => m.commentModel.Message)
@Html.ValidationMessageFor(m => m.commentModel.Message)
</p>
<p>
<input type="submit" value="Submit Comment" />
</p>
}
Run Code Online (Sandbox Code Playgroud)
然而,表单提交时,只有Name和Email返回一个验证错误,当Message太:

如果我Message从更改TextAreaFor为TextBoxFor,则验证工作正常.
为什么会这样,我怎样才能在我的文本框中进行验证?
值得注意的是,我不必为此表单编写任何特定的jQuery.我按照一个教程解释了这不是必需的,因为它全部由MVC3处理.
Shy*_*yju 11
使用[DataType(DataType.MultilineText)]数据注释装饰相应的模型属性并使用Html.EditorForHelper方法.
[Required]
[DataType(DataType.MultilineText)]
public string Message { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在使用 @Html.EditorForHelper方法
@Html.EditorFor(m => m.RoleDescription)
Run Code Online (Sandbox Code Playgroud)