Jil 序列化程序作为 MVC 默认值,不接受 "json" ContentType
Jil serializer as MVC default, don't accept "json" ContentType
有谁知道 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 时接收到的 obj 参数为 null,对于 Newtonsoft,它保存着请求中的值。
下一行应该添加到 Jil Formatter 的构造函数中
SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
关于如何将 Jil 实现为默认 mvc 序列化程序的更多说明:
Here
有谁知道 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 时接收到的 obj 参数为 null,对于 Newtonsoft,它保存着请求中的值。
下一行应该添加到 Jil Formatter 的构造函数中
SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
关于如何将 Jil 实现为默认 mvc 序列化程序的更多说明: Here