【发布时间】:2014-05-22 22:31:28
【问题描述】:
我已经看到与我的类似案例得到回答,但我有与其他问题不同的特定需求。
我正在将 json 数据从我的 html 页面发送到 MVC Web API。不幸的是,我收到的数据总是空的(我在这里尝试了很多不同的东西)。问题是我真的需要以 json(字符串)的形式接收数据,因为我的数据非常复杂,不能简单地被 Web API 反序列化(我有自己的自定义反序列化器)。
这是代码!
首先,将接收 ajax post 请求的 web api 控制器
public class ActivityController : ApiController
{
// POST api/activity
public string Post([FromBody]string json)
{
}
}
然后,ajax 请求本身
$.ajax("/api/activity", {
contentType: "application/json",
data: { json: ko.mapping.toJSON(fusionedModel) },
type: "POST",
success: function (result) {
...
}
});
就数据而言,它呈现得很好(我已经将相同的请求与 MVC(不是 Web Api)一起使用,并且服务器正在完美地接收字符串......现在由于某种原因,在我的 Web api 中控制器,“json”参数始终为空。正如我之前所说,我将数据作为 json 字符串接收是很重要的。
编辑:我发现我的问题与这个问题重复:POST JSON with MVC 4 API Controller 但我真的不喜欢这个答案...必须创建一个对象只是为了封装字符串很脏...
【问题讨论】:
-
当我使用无效的 JSON 时,我总是遇到这个问题(它非常严格,请尝试在 Visual Studio 中打开 JSON 文件,它有时会显示其他在线 JSON 验证器中未显示的问题)。不过,我目前遇到的问题似乎是有效的 JSON。您是否尝试过提交非常基本的 JSON,例如 {} ?
标签: c# json asp.net-web-api