我有以下视图模型
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。此处,Optional Property的验证错误仍会添加到ModelState中。
This answer建议1.避免重用子模型,但在我的情况下这不是一个选项,而且2.从ModelState中删除错误。在编写一个脏类来从HttpContext获取ModelState之前,我想知道是否还有一种我不知道的方法,因为答案已经过时了。
我的目标是将验证逻辑封装在我的ViewModels中。
谢谢
答案 0 :(得分:0)
好的,所以我找到了一个简单的解决方法。我创建了一个扩展类,其中包含一个ThreadStatic字段,该字段包含对当前控制器的引用。我的所有控制器都来自一个基本控制器,所以我只是在构造函数中设置当前控制器。一旦我有控制器,我也修复了ModelState问题。
答案 1 :(得分:0)
您可以尝试这样的事情:
[OT] Ace session not ready for: /weatherApp/src/containers/search_bar.js - will setSession when ready!