Javascript 如何修复jsonresult,它没有';t在视图中填充,但在控制器中有数据

Javascript 如何修复jsonresult,它没有';t在视图中填充,但在控制器中有数据,javascript,json,ajax,asp.net-mvc,asp.net-mvc-3,Javascript,Json,Ajax,Asp.net Mvc,Asp.net Mvc 3,我是使用javascrip、json和mvc进行编码的新手。我有一些问题,希望你能帮助我。我有代码,当我在控制器中调试时,它有数据,但当它使用json结果返回视图时,它将不会与表接口 控制器/C#代码: 查看/HTML代码: function attachCustodial() { $.ajax({ beforeSend: function () { $.blockUI({ baseZ: 2000 }); }, ca

我是使用javascrip、json和mvc进行编码的新手。我有一些问题,希望你能帮助我。我有代码,当我在控制器中调试时,它有数据,但当它使用json结果返回视图时,它将不会与表接口

控制器/C#代码:

查看/HTML代码:

function attachCustodial() {
    $.ajax({
        beforeSend: function () {
            $.blockUI({ baseZ: 2000 });
        },
        cache: true,
        type: 'POST',
        url: '/Accountability/getAccountability',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (json) {
            var oTable = $('#dtFinalTransfer').dataTable();
            oTable.fnDestroy();

            oTable.dataTable({
                "bSortClasses": false,
                "bSort": false,
                "bAutoWidth": false,
                "bLengthChange": false,
                "bFilter": false,
                "bPaginate": true,
                "sPaginationType":"full_numbers",
                "iDisplayLength": 2000,
                "aaData": json.result,
                "aoColumns": [
                    {
                        "mData": null,
                        "sClass": "ctr valign",
                        "sWidth": "5%"
                    },
                    {
                        "mData": "ProjectName",
                        "sClass": "ctr valign",
                        "sWidth": "15%"
                    },
                    {
                        "mData": "ReferenceNo",
                        "sClass": "ctr valign",
                        "sWidth": "15%"
                    },
                    {
                        "mData": "CustodialNo",
                        "sClass": "ctr valign",
                        "sWidth": "15%"
                    },
                    {
                        "mData": "IssuedBy",
                        "sClass": "ctr valign",
                        "sWidth": "20%"
                    },
                    {
                        "mData": "Name",
                        "sClass": "ctr valign",
                        "sWidth": "20%"
                    },
                    {
                        "mData": null,
                        "sWidth": "10%",
                        "bSearchable": false,
                        "sClass": "ctr valign",
                        "sDefaultContent": '<a class="pointer" onclick="viewCustodial(this)">&nbsp;View&nbsp;</a>',
                    }
                ]
            });
            tableCounter(oTable);
            $.unblockUI();
        },
        error: function (e) { $.unblockUI(); checkmsg('Please contact your system admininistrator' + e.responseText) }
    });
}

预期输出将用数十万或数百万条记录填充表。

这里的问题是您的json字符串长度超出默认值,因为

预计输出将以十万或十万填充表格 数百万张唱片

您可以在web.config文件中设置MaxJsonLength属性:

<configuration> 
  <system.web.extensions>
   <scripting>
       <webServices>
           <jsonSerialization maxJsonLength="..."/>
       </webServices>
   </scripting>
  </system.web.extensions>
</configuration> 

设置
maxJsonLength
默认值
maxJsonLength
102400,因此设置此值


建议:如果可能,则使用服务器端分页,因为从服务器获取数百万条记录是不可行的。一次只获取10到20条记录,在下一页获取另一条记录。

这里的问题是,您的json字符串长度超出了默认值,因为当您传递

预计输出将以十万或十万填充表格 数百万张唱片

您可以在web.config文件中设置MaxJsonLength属性:

<configuration> 
  <system.web.extensions>
   <scripting>
       <webServices>
           <jsonSerialization maxJsonLength="..."/>
       </webServices>
   </scripting>
  </system.web.extensions>
</configuration> 

设置
maxJsonLength
默认值
maxJsonLength
102400,因此设置此值


建议:如果可能,则使用服务器端分页,因为从服务器获取数百万条记录是不可行的。一次只能获取10到20条记录,然后在下一页获取另一条记录。

请参阅。另外,我建议使用GET来处理这样的请求,即您只是(实际上!)从任何类型的存储库中获取数据。@DavideVitali我使用了您的代码,但当我的查询获取大(10k++)记录时,会遇到错误。但是,当我的查询选择下面的100条记录时,表会很好地填充,我想问题在于数据。如果可能,请使用服务器端分页,每次只获取10或20个数据,并在下一页获取另一个数据。请参阅。另外,我建议使用GET来处理这样的请求,即您只是(实际上!)从任何类型的存储库中获取数据。@DavideVitali我使用了您的代码,但当我的查询获取大(10k++)记录时,会遇到错误。但是当我的查询选择下面的100条记录时,表会很好地填充,我想问题在于数据。如果可能的话,使用服务器端分页,每次只获取10或20个数据,然后在下一页获取另一个数据。
<configuration> 
  <system.web.extensions>
   <scripting>
       <webServices>
           <jsonSerialization maxJsonLength="..."/>
       </webServices>
   </scripting>
  </system.web.extensions>
</configuration>