Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于确认密码的比较数据批注不一致_C#_Asp.net_.net_Data Annotations_Blazor - Fatal编程技术网

C# 用于确认密码的比较数据批注不一致

C# 用于确认密码的比较数据批注不一致,c#,asp.net,.net,data-annotations,blazor,C#,Asp.net,.net,Data Annotations,Blazor,我有一个简单的登记表,上面有密码确认,你只需重复密码,你就知道了 现在,为了检查密码是否相同,我使用名为Compare的数据注释 [Required(ErrorMessage = "Password is required")] [MinLength(4, ErrorMessage = "Must be at least 4 characters")] [DataType(DataType.Password)] public string Password { g

我有一个简单的登记表,上面有密码确认,你只需重复密码,你就知道了

现在,为了检查密码是否相同,我使用名为Compare的数据注释

    [Required(ErrorMessage = "Password is required")]
    [MinLength(4, ErrorMessage = "Must be at least 4 characters")]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [Required(ErrorMessage = "Password confirmation is required")]
    [MinLength(4, ErrorMessage = "Must be at least 4 characters")]
    [DataType(DataType.Password)]
    [Compare(nameof(Password), ErrorMessage = "Passwords should be the same.")]
    public string PasswordConfirm { get; set; }
形式基本上是这样的:

<EditForm class="form-signin" OnValidSubmit="OnSubmit" Model="registerParameters">
<DataAnnotationsValidator />
<h4 class="font-weight-normal text-center">Create Account</h4>

<label for="inputUsername" class="sr-only">User Name</label>
<InputText id="inputUsername" class="form-control" placeholder="Username" autofocus @bind-Value="@registerParameters.UserName" />
<ValidationMessage For="@(() => registerParameters.UserName)" />

<label for="inputPassword" class="sr-only">Password</label>
<InputText type="password" id="inputPassword" class="form-control" placeholder="Password" @bind-Value="@registerParameters.Password" />
<ValidationMessage For="@(() => registerParameters.Password)" />

<label for="inputPasswordConfirm" class="sr-only">Password Confirmation</label>
<InputText type="password" id="inputPasswordConfirm" class="form-control" placeholder="Password Confirmation" @bind-Value="@registerParameters.PasswordConfirm" />
<ValidationMessage For="@(() => registerParameters.PasswordConfirm)" />

<button class="btn btn-lg btn-primary btn-block" type="submit">Create account</button>

<label class="text-danger">@error</label>
<NavLink href="login">
    <h6 class="font-weight-normal text-center">Already have an account? Click here to login</h6>
</NavLink>
</EditForm>

@functions{

RegisterParametersDto registerParameters { get; set; } = new RegisterParametersDto();
dynamic dyn;
string error { get; set; }

async Task OnSubmit()
{
    error = null;
    try
    {
        await authStateProvider.Register(registerParameters);
        navigationManager.NavigateTo("");
    }
    catch (Exception ex)
    {
        dyn = JsonConvert.DeserializeObject(ex.Message);
        error = dyn.errorMessage;
    }
}
}

创建帐户
用户名
密码
密码确认
创建帐户
@错误
已经有账户了吗?单击此处登录
@功能{
RegisterParametersTo registerParameters{get;set;}=new RegisterParametersTo();
动态dyn;
字符串错误{get;set;}
异步任务OnSubmit()
{
错误=null;
尝试
{
等待authStateProvider.Register(registerParameters);
navigationManager.NavigateTo(“”);
}
捕获(例外情况除外)
{
dyn=JsonConvert.DeserializeObject(例如Message);
error=dyn.errorMessage;
}
}
}
现在,只要这些密码不匹配,它就会正确地显示错误消息,但当我尝试提交时,它就会完全消失。我怎样才能解决这个问题

编辑:
我要补充一点,compare注释是唯一一个这样做的注释。如果密码确认太短,则会显示正确的错误,并且在按下提交按钮后不会消失。

此后,我为fluent validation更改了数据注释,它工作得很好,错误也消失了,因此我想这是改用fluent validation的另一个原因。

对不起,但这里的实际问题是什么?对不起,我按了回车键,在问题还没有完成时意外地提交了问题。我找不到删除选项,所以我希望在任何人看到之前及时编辑它。现在它完成了。编辑:现在它出于某种原因出现了。我发誓删除按钮不在那里!当你说“它完全消失”时,什么消失了?说这些密码不匹配的错误消息消失了,并且不会返回,除非我在这两个密码中至少添加一个字符。