【问题标题】:Jil serializer as MVC default, don't accept "json" ContentTypeJil 序列化器作为 MVC 默认值,不接受“json” ContentType
【发布时间】:2016-01-13 11:48:34
【问题描述】:

有人知道 Jil 是否可以在对 API 的 http 调用中接受 ContentType: 'application/json' 吗?

据我看只能接受ContentType:x-www-formencoded

一个对我不起作用的例子,控制器中接收到的对象为空。 这是JS调用

 var request = $.ajax({
        url: uri,
        type: commad,
        data: JSON.stringify(obj),
        dataType: "json",
        contentType: 'application/json',

这是obj的内容:

{"SessionToken":"65e2be91-a455-0ef3-0ba0-c2dd2c281ecc","ClientType":1,"OfferType":1,"DeviceInfo":{"Width":1080,"Height":1920}}

现在,在 MVC 控制器中,这是方法:

[HttpPost]
public Task<ActionResult> GetUserOffers([FromBody]OffersRequestInfo obj)
{
    if (obj == null)
        return null;

    CampaignLogic logic = new CampaignLogic();
    Task<ActionResult> res = logic.GetOffers(obj);
    return res;
}

使用 Jil 时接收为 null 的 obj 参数,使用 Newtonsoft 时,它保存请求中的值。

【问题讨论】:

标签: asp.net json asp.net-mvc jil


【解决方案1】:

下一行应该添加到 JilFormatter 的构造器中

  SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));

关于如何将 Jil 实现为默认 mvc 序列化程序的更多说明: Here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多