网络.模型参数名称不同导致Api反序列化失败



我有一个方法,它将模型[AccountLinkRequest]作为带有url编码数据的参数。它使用Json。此外,我不能使用设置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; }
}

问题:请求。CustomerId总是null。请求很简单:

web_service_URL/链接? customer_id = customer_id& id = id (url编码)

如果我使用Customer_Id而不是CustomerId,一切都会很好,但我在一个急躁的方式。谢谢你!

如何做到这一点没有一个简单的答案。更多详细信息请阅读:

如何在MVC/WebAPI的动作签名中绑定自定义对象

概要:

  1. 在Action
  2. 中手动调用parse函数
  3. 使用TypeConverter将复杂类型变为简单类型
  4. 使用自定义模型绑定

所以,如果你创建你的'SmartBinder',它能够消费一些属性,你可以得到你想要的。目前还没有这样的功能,只有命名约定。

相关内容

  • 没有找到相关文章

最新更新