Javascript 将jsonArray发送到方法MVC控制器

Javascript 将jsonArray发送到方法MVC控制器,javascript,asp.net-mvc,asp.net-mvc-4,asp.net-ajax,Javascript,Asp.net Mvc,Asp.net Mvc 4,Asp.net Ajax,我有以下ajax脚本 $(function () { $("#btnConfirmParticipants").click(function () { var jsonArray = []; $(".form-horizontal").each(function () { jsonArray.push({ Name: ($(this).f

我有以下ajax脚本

$(function () {
                $("#btnConfirmParticipants").click(function () {
                    var jsonArray = [];
                    $(".form-horizontal").each(function () {
                        jsonArray.push({ Name: ($(this).find("#Name").val()), Surname: ($(this).find("#Surname").val()), BirthDate: ($(this).find("#BirthDate").val()) });
                    });
                    $.ajax({
                        type: "POST",
                        url: "/ClientReservations/AddParticipants",
                        data: JSON.stringify(jsonArray),
                        dataType: 'application/json; charset=utf-8',
                        success: function (response) {

                        },
                        failure: function (response) {
                            alert(response.responseText);
                        },
                        error: function (response) {
                            alert(response.responseText);
                        }
                    });
                });
            });
此脚本负责在控制器中以列表作为参数执行方法

[HttpPost]
        [Authorize(Roles ="Klient")]
        public ActionResult AddParticipants(IList<Participant> participants)
        {
            return View();
        }
[HttpPost]
[授权(Roles=“Klient”)]
公共行动结果参与者(ILST参与者)
{
返回视图();
}
模型参与者如下所示

public class Participant
    {

        public Participant()
        {
            this.Reservation_House_Participant = new HashSet<Reservation_House_Participant>();
        }

        [Display(Name ="Id:")]
        [Required]
        public int Id { get; set; }

        [Display(Name ="Imię:")]
        [Required]
        [MinLength(3),MaxLength(15)]
        public string Name { get; set; }

        [Display(Name ="Nazwisko:")]
        [Required]
        [MinLength(3),MaxLength(15)]
        public string Surname  { get; set; }

        [Display(Name ="Data urodzenia:")]
        [Required]
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString ="{0:dd-MM-yyyy}",ApplyFormatInEditMode =true)]
        public DateTime BirthDate { get; set; }
}
公共课堂参与者
{
公众参与者()
{
this.Reservation_House_Participant=new HashSet();
}
[显示(Name=“Id:”)]
[必需]
公共int Id{get;set;}
[显示(Name=“Imię:”)]
[必需]
[最小长度(3),最大长度(15)]
公共字符串名称{get;set;}
[显示(Name=“Nazwisko:”)]
[必需]
[最小长度(3),最大长度(15)]
公共字符串姓氏{get;set;}
[显示(Name=“Data urodzenia:”)]
[必需]
[数据类型(DataType.Date)]
[DisplayFormat(DataFormatString=“{0:dd-MM-yyyy}”,ApplyFormatInEditMode=true)]
公共日期时间出生日期{get;set;}
}

当我点击按钮执行ajax脚本时,它将我重定向到控制器方法,在debbuger中,我看到参数IList参与者为空?原因可能是什么?

如果jQuery中有错误,则需要设置
contentType
,而不是
dataType
属性:

$.ajax({
    type: "POST",
    url: "/ClientReservations/AddParticipants",
    data: JSON.stringify(jsonArray),
    contentType: 'application/json; charset=utf-8', //<-- this line
    success: function (response) {

    },
    failure: function (response) {
        alert(response.responseText);
    },
    error: function (response) {
        alert(response.responseText);
    }
});
$.ajax({
类型:“POST”,
url:“/clientervations/AddParticipants”,
数据:JSON.stringify(jsonArray),

contentType:'application/json;charset=utf-8',/如果jQuery中有错误,则需要设置
contentType
,而不是
dataType
属性:

$.ajax({
    type: "POST",
    url: "/ClientReservations/AddParticipants",
    data: JSON.stringify(jsonArray),
    contentType: 'application/json; charset=utf-8', //<-- this line
    success: function (response) {

    },
    failure: function (response) {
        alert(response.responseText);
    },
    error: function (response) {
        alert(response.responseText);
    }
});
$.ajax({
类型:“POST”,
url:“/clientervations/AddParticipants”,
数据:JSON.stringify(jsonArray),

contentType:'application/json;charset=utf-8',//尝试使用简单的
string[]
然后调试it@Uphar你可能疯了。你不能把
var
放在那里。string[]相同的结果可能我应该用nuGet导入一些json库吗?@Contador6给我一点时间,我正在尝试调试它,尝试使用一个简单的
string[]
然后调试it@Uphar你可能疯了。你不能把
var
放在那里。string[]相同的结果可能我应该用nuGet导入一些json库吗?@Contador6等一下,我正在调试它