【问题标题】:how to send json data to mvc controller如何将json数据发送到mvc控制器
【发布时间】:2018-11-26 00:40:00
【问题描述】:

我的 ajax 代码是:

  $.ajax({
            url: "/Dashboard/filter",
            data: jsonData,
            traditional: true,
            contentType: 'application/json',
            dataType: 'json',
            type: "POST",
            success: function (data) {
                console.error(data);

            },
            error: function (error) {
                console.error(error);
            }
        });

和我的控制器操作:

    [HttpPost]
    public JsonResult filter(Utility.FJson filterjson)
    {

        return Json(new { });
    }

在实用程序类中:

 public class FilterJson
    {
        public string IdField { get; set; }
        public string NameField { get; set; }
        public int Check { get; set; }
        public string SFilter { get; set; }
        public string TFilter { get; set; }
    }
    public class FJson
    {
        public List<FilterJson> filter { get; set; }

    }

错误消息是:

POST http://localhost:38064/Dashboard/filter 500(内部服务器错误)

我想将 json 发送到 mvc 控制器。 如果发送时间中的 JSON.stringify(jsonData) .in 控制器 filterjson 变量为 NULL

【问题讨论】:

  • 你在 JavaScript 中创建的 Json 是什么样的?
  • 500 错误意味着您的服务器代码正在崩溃。在您的操作方法代码中放置一个断点并进行调试。您还可以在 devtools->network 选项卡中看到 ajax 调用。检查该呼叫的响应选项卡。这可能会为您提供有关异常的更多信息
  • 另外,jsonData 里面是什么?
  • @amiryami Pl,提供C#类Utility.FJson的定义以及js对象的值jsonData

标签: json ajax asp.net-mvc


【解决方案1】:

您可以使用以下代码以类的形式发送和接收Json

Ajax 代码是:

 var data = "{filter :[{IdField: '2', NameField: 'filter item', Check: 1 , SFilter: 'filter search' , TFilter: 'filter text'}]}";
    $.ajax({
        url: '/home/filter',
        dataType: 'json',
        type: 'POST',
        data: data,
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("error");
        }
    });

类:

public class FilterJson
{
    public string IdField { get; set; }
    public string NameField { get; set; }
    public int Check { get; set; }
    public string SFilter { get; set; }
    public string TFilter { get; set; }
}
public class FJson
{
    public List<FilterJson> filter { get; set; }

}

控制器动作是:

[HttpPost]
public JsonResult filter(FJson filterjson)
{

    return Json(new { });
}

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 1970-01-01
    • 2012-02-22
    • 2012-09-09
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多