我正在尝试让 Scott Kirkland 的 DataAnnotationsExtensions 与我的 MVC4 项目一起使用。但是我在客户端验证电子邮件地址时遇到问题。我添加了带有错误消息的 EmailAddress 注释,但是当我输入无效的电子邮件地址时,我没有收到自定义错误消息,而是收到通用电子邮件错误消息“请输入有效的 RecipientEmail 地址。”。
我的课看起来像这样:
public class NpRequest
{
[DisplayName("Telefonnummer som skal overdrages")]
[Required(ErrorMessage = "Angiv telefonnummeret som skal overdrages")]
public string PhoneNumer { get; set; }
[DisplayName("Recipient email address")]
[EmailAddress(ErrorMessage = "This is my custom error message")]
[Required(ErrorMessage = "The recipient email address is required")]
public string RecipientEmail { get; set; }
public RecipientTypeEnum RecipientType { get; set; }
}
而我的观点:
---片段开始---
<div class="editor-label">
@Html.LabelFor(model => model.PhoneNumer)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PhoneNumer)
@Html.ValidationMessageFor(model => model.PhoneNumer)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.RecipientEmail)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.RecipientEmail)
@Html.ValidationMessageFor(model => model.RecipientEmail)
</div>
<p>
<input type="submit" value="Create" />
</p>
---片段结束---
编辑:当我检查 HTML 时,它看起来像这样:
<input class="text-box single-line input-validation-error" data-val="true" data-val-email="This is my custom error message" data-val-required="The recipient email address is required" id="RecipientEmail" name="RecipientEmail" type="email" value="">
似乎我的自定义错误消息已放入 data-val-email 属性中。我的印象是 DataAnnotationExtension 自动将我的自定义错误消息添加到 ModelState 中,从而也将其添加到 field-validation-error span 中,这显示了 MVC 验证错误。
这个假设是错误的吗?我应该编写自己的 javascript,它提取自定义错误消息属性并将其注入到 field-validation-error span 中吗?
谁能看到我做错了什么?