Asp.net web api MVC WebApi CamelCasingPropertyNames无法在BadRequest上工作

Asp.net web api MVC WebApi CamelCasingPropertyNames无法在BadRequest上工作,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,我在WebApiConfig.cs文件中有以下内容,它适用于良好的请求 var jsonFormatter = config.Formatters.JsonFormatter; jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 我的控制器中的顶行是 public async Task<IHttpActionResult> ForgotPa

我在WebApiConfig.cs文件中有以下内容,它适用于良好的请求

var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
我的控制器中的顶行是

public async Task<IHttpActionResult> ForgotPassword(ForgotPasswordBindingModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
}
当我的模型被序列化回客户端时,用户名和电子邮件的大小写都不正确

Object {message: "The request is invalid.", modelState: Object}
message: "The request is invalid."
modelState: Object
model.Email: Array[1]
0: "The Email field is not a valid e-mail address."

对象本身
ModelState
的大小写似乎是正确的,当请求成功时,生成的对象是正确的,但是badrequest的ModelState属性似乎没有正确的大小写。根据我的理解,modelState.model.email应该使用小写字母“E”来表示电子邮件。我以为配置设置解决了这个问题,但事实并非如此。有人知道为什么modelstate在序列化回来时没有正确地进行CAMELCASE吗?

这可能是因为modelstate是一个字典,CamelCaseContractResolver只处理模型的属性

Object {message: "The request is invalid.", modelState: Object}
message: "The request is invalid."
modelState: Object
model.Email: Array[1]
0: "The Email field is not a valid e-mail address."