C# ASP.NET核心RegularExpression数据批注忽略错误消息

C# ASP.NET核心RegularExpression数据批注忽略错误消息,c#,regex,asp.net-core,C#,Regex,Asp.net Core,我有一个名为CreateStaffViewModel的模型,它有一个密码的数据注释,用于检查用户是否输入了大写、小写、数字和特殊字符以及至少8个字符长。 以及用户友好的错误消息 我的问题是,在视图上,错误消息被忽略,正则表达式被显示 public class CreateStaffViewModel : StaffViewModel { [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([^

我有一个名为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; }
        }

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

另外,我已经查看了答案并实施了答案。没有人为我工作过

更新:查看代码

    <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>

@**@
@Html.ValidationMessageFor(x=>x.Password)
在razor视图中:

@Html.ValidationMessageForm(model=>model.Password)
在razor视图中:

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

您的视图是什么样子的?您的代码是正确的,我测试过,它显示
必须包含大写、小写、数字和特殊字符
而不是默认的错误消息。您是否尝试创建一个新的简单项目进行测试?确保模型是视图中的
CreateStaffViewModel
。你能分享一个完整的简单项目来重现这个问题吗?你在控制器中检查Model.IsValid吗?您介意发布控制器逻辑吗?您的视图是什么样子的?您的代码是正确的,我测试过,它显示
必须包括大写、小写、数字和特殊字符
而不是默认错误消息。您是否尝试创建一个新的简单项目进行测试?确保模型是视图中的
CreateStaffViewModel
。你能分享一个完整的简单项目来重现这个问题吗?你在控制器中检查Model.IsValid吗?您介意发布控制器逻辑吗?我已尝试更改视图上的代码。没有效果。出现相同的错误消息我已尝试更改视图上的代码。没有效果。出现相同的错误消息