C# ASP.NET核心RegularExpression数据批注忽略错误消息
我有一个名为CreateStaffViewModel的模型,它有一个密码的数据注释,用于检查用户是否输入了大写、小写、数字和特殊字符以及至少8个字符长。 以及用户友好的错误消息 我的问题是,在视图上,错误消息被忽略,正则表达式被显示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)(?=.*([^
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吗?您介意发布控制器逻辑吗?我已尝试更改视图上的代码。没有效果。出现相同的错误消息我已尝试更改视图上的代码。没有效果。出现相同的错误消息