【问题标题】:Phone Data Annotation .Net Core 1.1 not validating电话数据注释.Net Core 1.1 未验证
【发布时间】:2018-06-27 17:37:44
【问题描述】:

我认为 [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 不支持手机,这仍然正确吗?

【问题讨论】:

    标签: validation razor data-annotations asp.net-core-1.1


    【解决方案1】:

    是的。您必须为此使用正则表达式。 例如

    [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 等格式。

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多