c# - Ajax传递过来的数据在C#中显示为null?

标签 c# javascript ajax asp.net-mvc json

我正在尝试将一些 JSON 形式的数据从我的 ajax 帖子发送到 C# 中的 Controller 方法。虽然我没有得到任何数据。我正在验证数据是否存在,因此在 ajax 的第二位之前有一个 console.log(data.model) 来执行此操作。不管怎样,模型在 C# 方面始终为 null。

Javascript 帖子:

$.ajax({
    data: model,
    cache: false,
    type: 'post',
    traditional: true,
    url: mod.RespondentsTableUrl,
    success: function (data) {
        console.log(data.model);
        if (data.success) {
            $('table.coldListTable').dataTable().fnRefreshTable(data.model);

            $('#numberOfResults').text(data.model.length);
            if (thereAreFiltersInPlace(model)) {
                $('#coldListFilterForm div.alert-container > div.nNote > p').text(String.format(Culture.Phrases.FiltersNoteFormat, data.model.length));
                $('#coldListFilterForm div.alert-container > div.nNote.dn').removeClass('dn');
            }
            else {
                $('#coldListFilterForm div.alert-container > div.nNote').addClass('dn');
            }

            console.log(JSON.stringify(data.model));
            $.ajax({
                data: JSON.stringify(data.model),
                cache: false,
                type: 'post',
                url: 'Respondents/DownloadCSV',
            });
        }
        else {
            errorDialog();
        }
    },
    error: errorDialog,
    complete: function () {
        //unhide cold list / filters, hide loader div.
        $('#loader').addClass('dn');
    }
});

型号:

public class RespondentCoreDataViewModel
    {
        public RespondentsData[] RepondentsCore { get; set; }
    }

    public class RespondentsData
    {
        public string Class { get; set; }
        public Data Data { get; set; }
        public int Id { get; set; }
        public string Url { get; set; }
        public object HtmlAttributes { get; set; }
        public bool IsLocked { get; set; }
    }

    public class Data
    {
        public string Name { get; set; }
        public string Source { get; set; }
        public object Email { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Gender { get; set; }
        public string Ethnicity { get; set; }
        public string Age { get; set; }
        public string LastRecruiter { get; set; }
        public string OwningRecruiter { get; set; }
        public string RecruitingGroup { get; set; }
        public string LastActionDate { get; set; }
        public string Status { get; set; }
        public string _class { get; set; }
        public string url { get; set; }
        public int Id { get; set; }
        public long created { get; set; }
    }

Controller 方法:

[HttpPost]
        public ActionResult DownloadCSV(RespondentCoreDataViewModel model )
        {
            ....random code in here
        }

最后是 Json String,以防有人感兴趣:

[{"Class":"respondent clickable gradeA","Data":{"Name":"John Keys","Source":"<span style=\"display:none;\" >Database</span><i class=\"tipN icon-tasks\" original-title=\"Database\"></i>","Email":null,"City":"","State":"","Gender":"","Ethnicity":"","Age":"","LastRecruiter":"Ben Mabry","OwningRecruiter":"Ben Mabry","RecruitingGroup":"Board 2- Competitive Users","LastActionDate":"<span class=\"dn\">20131008175555</span>10/8 5:55 PM","Status":"<span style=\"display:none;\" >Completed</span><i class=\"tipN icon-check\" original-title=\"Completed\"></i>","class":"respondent clickable gradeA","url":"/Projects/644/Respondents/260619/Overview","Id":260619,"created":1386796133808},"Id":260619,"Url":"/Projects/644/Respondents/260619/Overview","HtmlAttributes":null,"IsLocked":false},{"Class":"respondent clickable gradeA","Data":{"Name":"Jim Walser","Source":"<span style=\"display:none;\" >Database</span><i class=\"tipN icon-tasks\" original-title=\"Database\"></i>","Email":null,"City":"","State":"","Gender":"","Ethnicity":"","Age":"","LastRecruiter":"Ben Mabry","OwningRecruiter":"Ben Mabry","RecruitingGroup":"Board 2- Competitive Users","LastActionDate":"<span class=\"dn\">20131008175529</span>10/8 5:55 PM","Status":"<span style=\"display:none;\" >Completed</span><i class=\"tipN icon-check\" original-title=\"Completed\"></i>","class":"respondent clickable gradeA","url":"/Projects/644/Respondents/260620/Overview","Id":260620,"created":1386796133808},"Id":260620,"Url":"/Projects/644/Respondents/260620/Overview","HtmlAttributes":null,"IsLocked":false},{"Class":"respondent clickable gradeA","Data":{"Name":"Jill Lellis","Source":"<span style=\"display:none;\" >Database</span><i class=\"tipN icon-tasks\" original-title=\"Database\"></i>","Email":null,"City":"","State":"","Gender":"","Ethnicity":"","Age":"","LastRecruiter":"Luanne Jones","OwningRecruiter":"Luanne Jones","RecruitingGroup":"Board 1-Mission Brand","LastActionDate":"<span class=\"dn\">20131009110258</span>10/9 11:02 AM","Status":"<span style=\"display:none;\" >Completed</span><i class=\"tipN icon-check\" original-title=\"Completed\"></i>","class":"respondent clickable gradeA","url":"/Projects/644/Respondents/260621/Overview","Id":260621,"created":1386796133808},"Id":260621,"Url":"/Projects/644/Respondents/260621/Overview","HtmlAttributes":null,"IsLocked":false},{"Class":"respondent clickable gradeA","Data":{"Name":"Charlie Neese","Source":"<span style=\"display:none;\" >Database</span><i class=\"tipN icon-tasks\" original-title=\"Database\"></i>","Email":null,"City":"","State":"","Gender":"","Ethnicity":"","Age":"","LastRecruiter":"Luanne Jones","OwningRecruiter":"Luanne Jones","RecruitingGroup":"Board 2- Competitive Users","LastActionDate":"<span class=\"dn\">20131009112301</span>10/9 11:23 AM","Status":"<span style=\"display:none;\" >Completed</span><i class=\"tipN icon-check\" original-title=\"Completed\"></i>","class":"respondent clickable gradeA","url":"/Projects/644/Respondents/260622/Overview","Id":260622,"created":1386796133808},"Id":260622,"Url":"/Projects/644/Respondents/260622/Overview","HtmlAttributes":null,"IsLocked":false},{"Class":"respondent clickable gradeA","Data":{"Name":"Tara Reid","Source":"<span style=\"display:none;\" >Database</span><i class=\"tipN icon-tasks\" original-title=\"Database\"></i>","Email":null,"City":"","State":"","Gender":"","Ethnicity":"","Age":"","LastRecruiter":"Luanne Jones","OwningRecruiter":"Luanne Jones","RecruitingGroup":"Board 2- Competitive Users","LastActionDate":"<span class=\"dn\">20131009112221</span>10/9 11:22 AM","Status":"<span style=\"display:none;\" >Completed</span><i class=\"tipN icon-check\" original-title=\"Completed\"></i>","class":"respondent clickable gradeA","url":"/Projects/644/Respondents/260623/Overview","Id":260623,"created":1386796133808},"Id":260623,"Url":"/Projects/644/Respondents/260623/Overview","HtmlAttributes":null,"IsLocked":false}]

最佳答案

我实际上有一个 similar problem.

我的解决方案是在 block 中:

success: function () {
//code here
}

您需要在此处输入成功函数的名称。示例:

success{
//code here
}

ajaxSuccess(result)
{
//code here
}

关于c# - Ajax传递过来的数据在C#中显示为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530166/

相关文章:

c# - Windows 应用商店验证订阅服务器端

c# - 静态属性的默认值

c# - 使用 Magick.NET 创建多页 TIFF

javascript - 在 UInt64 上做数学就是解开它

javascript - 为浏览器代码导入 geofire-common 和 firestore

jquery - Chrome 中的 AJAX 发送选项而不是 GET/POST/PUT/DELETE?

c# - 如何在不安装证书的情况下在 SharpSvn 中使用自定义证书颁发机构

javascript - 我可以在脚本包中使用 QueryString 版本吗?

javascript - HTML5 Canvas 图像上传 - 上传空白图像或被破坏

javascript - 在聊天应用程序中发送本地语言消息时出现 UTF-8 问题?