看看这个问题ASP.net Web API中MVC的DefaultModelBinder是什么等价物?有关绑定将在何处发生的一些详细信息。
我怀疑您Model
是否正在消息正文中传递?
如果是,那么 WebApi 将使用格式化程序来反序列化您的类型并处理模型,默认XmlMediaTypeFormatter
值为JsonMediaTypeFormatter
或FormUrlEncodedMediaTypeFormatter
。
如果您在正文中发布模型,则根据您请求或接受的内容类型是(应用程序/xml、应用程序/json 等),您可能需要自定义序列化器设置或包装或实现您自己的MediaTypeFormatter
.
If you are using application/json then you can use JsonConverters
to customise the serialisation of your UserInfo class. There is an example of this here Web API ModelBinders - how to bind one property of your object differently and here WebApi Json.NET custom date handling
internal class UserInfoConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeOf(UserInfo);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
JsonSerializer serializer)
{
//
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
//
}
}