【问题标题】:ASP.NET CORE RegularExpression data annotation ignoring error messageASP.NET CORE 正则表达式数据注释忽略错误消息
【发布时间】:2019-12-12 14:58:14
【问题描述】:

我有一个名为 CreateStaffViewModel 的模型,它有一个密码数据注释,用于检查用户是否输入了一个大写、小写、数字和特殊字符,并且长度至少为 8 个字符。 以及用户友好的错误消息。

我的问题是在视图中错误消息被忽略并且正则表达式被显示。

public class CreateStaffViewModel : StaffViewModel
        {
            [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([^a-zA-Z\d\s])).{8,}$",
                ErrorMessage = "Must include upper, lower, numeric and special characters")]
            public string Password { get; set; }

            [Compare(nameof(Password), ErrorMessage = "Passwords do not match")]
            public string ConfirmPassword { get; set; }
        }

如何使视图上的正则表达式显示用户友好的错误消息。

PS。我已经查看了答案Regular expression error message 并实施了答案。哪一个对我有用。

更新:查看代码

    <form asp-action="Register">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <div class="form-group">
                    <label asp-for="Email" class="control-label"></label>
                    <input asp-for="Email" class="form-control" />
                    <span asp-validation-for="Email" class="text-danger"></span>
                </div>


                <div class="form-group">
                    <label asp-for="Password" class="control-label"></label>
                    <input asp-for="Password" type="password" class="form-control" />
                    @*<span  asp-validation-for="Password" class="text-danger"></span>*@
                    @Html.ValidationMessageFor(x => x.Password)
                </div>

                <div class="form-group">
                    <label asp-for="ConfirmPassword" class="control-label"></label>
                    <input asp-for="ConfirmPassword" type="password" class="form-control" />
                    <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
                </div>

【问题讨论】:

  • 你的视图是什么样的?
  • 你的代码是正确的,我测试过它显示Must include upper, lower, numeric and special characters不是默认的错误信息。您是否尝试创建一个新的简单项目进行测试?确保模型是您视图中的CreateStaffViewModel 。您能否分享一个可以重现该问题的完整简单项目?
  • 您在控制器中检查 Model.IsValid 吗?您介意发布控制器逻辑吗?

标签: c# regex asp.net-core


【解决方案1】:

在剃刀视图中:

@Html.ValidationMessageForm(model => model.Password)

【讨论】:

  • 我已尝试更改视图上的代码。没有效果。出现同样的错误信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 2016-03-30
  • 2018-03-28
相关资源
最近更新 更多