如何将json数据发送到mvc控制器

时间:2018-06-16 12:29:52

标签: json ajax asp.net-mvc

我的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

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码以类的形式发送和接收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 { });
}