【发布时间】:2018-09-12 01:38:37
【问题描述】:
我遇到了一个问题,每当我输入一个字符串请求 整数和布尔数据类型。我收到一条奇怪的错误消息,由 NET CORE2.1 新功能自动模型验证引起。
这是请求
{
"EmailAddress" : "johndoe@gmail.com",
"EmailAddressConfirm" : "johndoe@gmail.com",
"FirstName" : "KL",
"MiddleName": "M",
"LastName" : "Lawingco",
"InquiryTypeID": "asda" ,
"InquiryContent" : "test",
"Validation" : true,
"TermsAndCondition" : false
}
它会抛出这样的错误
无法将字符串转换为整数:asda。路径“InquiryTypeID”,第 7 行,位置 26。
请注意,我也在使用 FluentValidation,但从 2.1 开始引入了自动模型验证。我的问题是,每当输入错误的 int 或 boolean 数据类型时,我可以修改错误消息吗
我尝试使用此关闭自动模型验证
services.Configure<ApiBehaviorOptions>(opt =>
{
opt.SuppressModelStateInvalidFilter = true;
});
但它也杀死了我的 FluentValidation
这是我的模型
public class NewInquiry
{
public string EmailAddress{ get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string EmailAddressConfirm { get; set; }
public int? InquiryTypeID { get; set; }
public string InquiryContent { get; set; }
public bool Validation { get; set; }
public bool TermsAndCondition { get; set; }
}
希望你能帮帮我,谢谢
【问题讨论】:
-
stackoverflow.com/questions/51439664/… - 这可能就是你要找的。span>
-
谢谢,但这只是对错误响应结构的修改。 :( 我已经能够使用过滤器修改我的错误结构
标签: c# asp.net-core asp.net-core-2.1