我见过很多类似的问题,我已经尝试了所有可能的答案,但我的问题仍然是一样的。基本上,我有以下 ajax 调用。
var obj = {
Duration: 12000,
Errors: 2
};
var post = $.ajax({
url: APIUrl,
data: JSON.stringify(obj),
type: "POST",
cache: false,
dataType: 'json',
contentType: 'application/json, charset=utf-8'
});
这是我的视图模型。
public class TargetBasedViewModel
{
public int Duration{ get; set; }
public int Errors{ get; set; }
}
这是我的控制器。
[HttpPost]
public HttpResponseMessage Post(TargetBasedViewModel test)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
问题是参数一直为空。我使用 Fiddler 检查了请求,它看起来很好,所有属性都在那里,我什至可以检查 JSON 对象并确保我的值实际上被发送到服务器。我已经阅读了很多文章,甚至尝试将 [ModelBinder] 和 [FromBody] 添加到参数中,但仍然没有运气。我也尝试将此添加到我的 Application_Start()
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings();
有什么想法我可能做错了吗?