gpt4 book ai didi

c# - .NET Core MVC 中的可选模型属性绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 19:33:24 25 4
gpt4 key购买 nike

我创建了一个具有以下属性的 AccountModel

public class AccountModel
{
[Required]
[EmailAddress]
public string Email { get; set; }

[Required]
[StringLength(10, MinimumLength = 6)]
public string Password { get; set; }

[NotMapped] // Does not effect with your database
[Compare("Password")]
[BindRequired]
public string ConfirmPassword { get; set; }
}

我尝试对 SignUpSignIn 使用相同的模型。该模型非常适合注册,但是当我使用相同的模型进行登录时,我的模型变得无效。

我知道原因,因为我没有传递“确认密码”属性的值。我尝试遵循

  1. 我使用“?”创建了NULLABLE但它给了我警告(请参阅随附的屏幕截图) enter image description here

  2. 我也尝试过 [BindRequired] 注释,但也不起作用。

我正在使用 ASP.NET Core 3.1 并尝试使用单一模型进行登录和注册。

有什么解决办法吗?我正在学习 .NET Core 和 MVC,因此对这个主题的了解较少。

感谢您提前提供帮助。

最佳答案

这称为可空上下文,基于其 documentation :

Nullable contexts enable fine-grained control for how the compiler interprets reference type variables. The nullable annotation context of any given source line is either enabled or disabled. You can think of the pre-C# 8.0 compiler as compiling all your code in a disabled nullable context: any reference type may be null. The nullable warnings context may also be enabled or disabled. The nullable warnings context specifies the warnings generated by the compiler using its flow analysis.

你可以像这样摆脱这个警告:

#nullable enable
public string? ConfirmPassword { get; set; }
#nullable disable

作为另一种解决方法,如果您希望始终在项目中消除此警告,可以在 .csproj 文件中添加 Nullable 元素。右键单击您的项目并单击“编辑项目文件”,然后将 Nullable 元素添加到 PropertyGroup 部分,如下所示:

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>

您只需重新构建您的项目一次即可看到结果。

关于c# - .NET Core MVC 中的可选模型属性绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61436203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com