我有一个方法,它将模型[AccountLinkRequest]作为带有url编码数据的参数。它默认使用Json.NET,而且,我不能使用设置 UseDataContractJsonSerializer = true 因为我有通用输出响应模型(在其他方法中)
[HttpPost]
public SomeResponse Link(AccountLinkRequest request)
{
if (request.CustomerId == null)
throw new Exception("Deserialization error here, pls help!");
// other actions
}
这是我的模特课:
[DataContract]
[JsonObject]
public class AlertAccountLinkRequest
{
[DataMember(Name = "id")]
public string id { get; set; }
[DataMember(Name = "customer_id")]
[JsonProperty("customer_id")]
public string CustomerId { get; set; }
}
问题: request.CustomerId总是 null 。请求非常简单:
web_service_URL / link?customer_id = customer_id& id = id(url-encoded)
如果我使用Customer_Id而不是CustomerId,一切都会好的,但我是一个傻瓜。谢谢!
答案 0 :(得分:1)
如何实现这一目标并不是一个简单的答案。有关详细信息,请阅读:
How to bind to custom objects in action signatures in MVC/WebAPI
要点:
因此,如果您创建了能够使用某些属性的“SmartBinder”,您可以获得所需的内容。在框中没有任何功能,只有命名约定......