2016-01-13 85 views
1

是否有人知道Jil是否可以在http调用API中接受ContentType: 'application/json'Jil序列化程序为MVC默认值,不接受“json”ContentType

从我看到它只能接受ContentType:x-www-formencoded

的东西不为我工作的一个例子,在控制器接收的对象为null。 这是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; 
} 

obj参数当使用Jil时,使用Newtonsoft时,它将保留请求中的值。

+0

欢迎的StackOverflow!请给我一个[MCVE]。谢谢! – jkalden

+0

我编辑问题。 –

回答

1

下一行应该被添加到JilFormatter

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

更多的解释就如何落实的Jil作为默认MVC串行的constractor: Here

相关问题