我认为[Phone]注释应该将标准正则表达式模式应用于UI输入字段,但我发现我可以输入任何单词,各种特殊字符并且不会出现验证错误。
下面是HTML,然后是模型条目
<div class="form-group">
<label class="col-sm-3 control-label">@Html.DisplayNameFor(m => m.Supplier.Phone)</label>
<div class="col-sm-9">
@Html.TextBoxFor(m => m.Supplier.Phone, new { @class = "form-control", id = "Phone" })
<span asp-validation-for="Supplier.Phone" class="text-danger"></span>
</div>
</div>
[Required]
[Phone]
public string Phone { get; set; }
[EmailAddress],[Range]和[Required]等所有其他验证工作正常。
我确实遇到过这个stackoverflow article暗示HTML5不支持手机,这还是正确的吗?
答案 0 :(得分:0)
是的。您必须为此使用正则表达式。 例如
[RegularExpression("^[0-9]*$", ErrorMessage = "The Phone Number field must contain only numbers")]
或
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Entered phone format is not valid.")]
第一个将只允许使用数字值,而第二个将允许使用0123456789、012-345-6789,(012)-345-6789等格式。