我有一堂課:public class ClientInfo{ public string LabAccount { get; set; } //....}和驗證器類:public class ClientInfoFluentValidator : AbstractValidator<ClientInfo>{ public ClientInfoFluentValidator() { RuleFor(d => d.LabAccount) .NotEmpty() .WithMessage("LabAccount is required"); RuleFor(d => d.LabAccount) .Length(8) .WithMessage("LabAccount is limited by 8 letters"); //.... }}然后我有類,它有ClientInfo類作為屬性:public class Order{ public ClientInfo ClientInfo { get; set; } //....}和驗證器類:public class OrderFluentValidator : AbstractValidator<Order>{ public OrderFluentValidator() { //... RuleFor(d => d.ClientInfo) .NotNull() .WithMessage("ClientInfo part is required"); RuleFor(d => d.ClientInfo) .SetValidator(new ClientInfoFluentValidator()); }}當我嘗試僅驗證ClientInfo它時: ClientInfoFluentValidator validator = new ClientInfoFluentValidator(); [TestMethod] public void ClientInfoInvalidLabAccountLength() { ClientInfo model = new ClientInfo { LabAccount = "1234567" //.... }; validator.ShouldHaveValidationErrorFor(d => d.LabAccount, model); //.... }但是當我嘗試驗證Order類時: OrderFluentValidator validator = new OrderFluentValidator(); [TestMethod] public void OrderInfoValid() { Order model = new Order { ClientInfo = new ClientInfo { LabAccount = "1234567" //.... }, //.... }; validator.ShouldHaveValidationErrorFor(d => d.ClientInfo, model); }它說,那個model類是有效的。為什么這樣?為什么ClientInfo驗證器不起作用?
1 回答

青春有我
TA貢獻1784條經驗 獲得超8個贊
您需要在應該具有錯誤消息的子視圖模型上指定確切的屬性。這似乎是斷言的問題,而不是您的視圖模型或驗證器:
validator.ShouldHaveValidationErrorFor(d => d.ClientInfo.LabAccount, model);
- 1 回答
- 0 關注
- 92 瀏覽
添加回答
舉報
0/150
提交
取消