gpt4 book ai didi

c# - 如何使 FluentValidation 忽略一个属性

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:03 25 4
gpt4 key购买 nike

我有以下 View 模型

public class MyViewModel
{
public MyViewModelClassWithValidator MandatoryProperty {get; set;}
public MyViewModelClassWithValidator OptionalProperty {get; set;}

public class MyViewModelValidator : AbstractValidator<MyViewModel>
{
public MyViewModelValidator()
{
RuleFor(x=> x.MandatoryProperty) //...
//No rule for property 2
}
}
}

我正在寻找一种方法来使 FluentValidation 忽略 OptionalProperty。在这里,可选属性的验证错误仍然被添加到 ModelState。

This answer建议 1. 避免重复使用子模型,但在我的情况下这不是一个选项,以及 2. 从 ModelState 中删除错误。在编写脏类以从 HttpContext 获取 ModelState 之前,我想知道是否有其他我不知道的方法,因为答案是旧的。

我的目标是将验证逻辑封装在我的 ViewModel 中。

谢谢

最佳答案

好的,我找到了一个简单的解决方法。我创建了一个扩展类,其中包含一个 ThreadStatic 字段,其中包含对当前 Controller 的引用。我所有的 Controller 都派生自一个基本 Controller ,所以我只在构造函数中设置当前 Controller 。一旦我有了 Controller ,我也有了 ModelState,所以问题就解决了。

关于c# - 如何使 FluentValidation 忽略一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30570963/

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