【问题标题】:Parse Array of JSON Objects in ASP.Net在 ASP.Net 中解析 JSON 对象数组
【发布时间】:2015-03-10 20:37:43
【问题描述】:

我正在尝试学习 ASP.Net MVC,我想将 JSON 对象数组发布到服务器并将其发送回客户端。当我使用Postman 时一切都很好,但它在实际网页上不起作用。我认为问题在于发布数组的 jQuery 代码或无法解析数组的 ASP.Net 代码。

这是我的控制器代码:

[System.Web.Mvc.HttpPost]
public ActionResult GetResult(List<Table> list)
{
    return Json(list);
}

这是我的对象声明:

public class Table
{
    public int Id { get; set; }
    public String Question { get; set; }
    public int Answer { get; set; }
}

这是发布数据的 jQuery 代码:

$.post("./GetResult", JSON.stringify(tableData), function (data, status) { alert(status); }, "json");

tableData 是一个 JSON 数组,如下所示:

[
    {
        "Id": 500,
        "Question": "where are you from",
        "Answer": 2
    },
    {
        "Id": 501,
        "Question": "how old are you",
        "Answer": 1
    },
    {
        "Id": 502,
        "Question": "what is your first car",
        "Answer": 2
    },
    {
        "Id": 503,
        "Question": "do you have kids",
        "Answer": 1
    }
]

另外,我可以看到我的代码通过 post 控制器,但它是空的或 null。

Here 是我的 csHTML 文件的链接。

【问题讨论】:

标签: jquery asp.net json


【解决方案1】:

尝试在您的请求中指定内容类型:

$.ajax({
  url: "./GetResult",
  type: "POST",
  data: JSON.stringify(tableData),
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function (data, status) { alert(status); }
})

【讨论】:

    【解决方案2】:

    在您的$.post 通话中无需JSON.stringify。让 jQuery 为您处理。

    【讨论】:

    • 没有JSON.stringify,这是 jQuery 发送到服务器的内容:undefined=&undefined=&undefined=&undefined=
    • @Apha 你能用小提琴重现它吗?
    【解决方案3】:
    $.post("./GetResult", {list:tableData},
        function (data, status) 
        { 
            alert(status); 
        }
    , "json");
    

    Json 从未传递过对象。

    using Newtonsoft.Json;
    [HttpPost]
    Public ActionResult GetResult(string list)
    {
        var obj = JsonConvert.DeserializeObject<List<Table>>(strStatus);
        return Json(list)
    }
    

    $.ajax({
      url: "./GetResult",
      type: "POST",
      data: JSON.stringify(tableData),
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (data, status) { alert(status); }
    })
    

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 2015-05-14
      • 1970-01-01
      • 2020-10-07
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多