在我的模型中,我有:
[Required]
[DataType(DataType.EmailAddress)]
public string EmailAddress {get; set;}
然而,在我看来(来源)这呈现为:
<label for="EmailAddress">EmailAddress</label>
<input data-val="true" data-val-required="The EmailAddress field is required"
id="EmailAddress" name="EmailAddress" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="EmailAddress" data-valmsg-replace="true">
我认为这应该使用type="email"而不是 type="text" 呈现 - 所以在客户端验证时,如果电子邮件不是有效格式,它不会被接收。
编辑
此外,当我调用if (ModelState.IsValid)时,即使电子邮件地址的格式不正确,它也会返回 true。所以即使浏览器不支持 HTML5,我也会认为控制器中的 IsValid 会强制执行验证 - 不是这样吗?
我的模型上是否还需要其他东西来强制 type="email" 以便正确检查有效的电子邮件地址?
谢谢,
标记