gpt4 book ai didi

c# - MVC - 在 ViewModel 中进行验证是否足够?

转载 作者:行者123 更新时间:2023-11-30 23:20:21 24 4
gpt4 key购买 nike

因为我首先使用数据库,所以我通过 ViewModel 验证我的输入。但这是否足以进行验证,或者是否有一些不成文的规则可以添加它,例如在 Controller 中?

此外,最常见的属性验证是什么,比如密码?

[Required]
[StringLength(50)]
[MinLength(3)]
public string Password { get; set; }

这是一个很好的验证吗?

最佳答案

属性验证非常适合它的功能。除了您提到的验证属性之外,您还有 EmailAddress 属性,该属性将给定属性验证为电子邮件地址。

[EmailAddress(ErrorMessage = "Invalid Email Address")]

然后你有 RegularExpression 验证属性来做更复杂的自定义验证:

[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", 
ErrorMessage = "Characters are not allowed.")]

对于条件验证和类似的事情,您可以将该逻辑添加到您的 Controller 并根据需要将错误添加到 ModelState。

例子:

if (MyProperty == "something" && MyOtherProperty != "something")
{
ModelState.AddModelError("", "MyOtherProperty needs to be something")
}

如果您不想在您的 Controller 逻辑中使用此类样板验证代码,您可以编写自己的自定义验证属性。通过这样做,您几乎可以验证您能想到的任何内容。

Internet 上有大量关于该主题的资源。

How to create a custom validation attribute?

How to create Custom Data Annotation Validators

仅举几例。

关于c# - MVC - 在 ViewModel 中进行验证是否足够?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39797619/

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