繁体   English   中英

MVC 错误:字符串的长度超过了 maxJsonLength 属性上设置的值

[英]MVC Error: The length of the string exceeds the value set on the maxJsonLength property

我有数千行要检索,但错误是它超过了 maxlenghtjson 属性,因此如果我有数百万个数据,将来就不会了。 你能帮我如何用我的代码解决这个问题吗? 我只想在数据库中显示我的数据。

- 我的控制器,我从视图中传递我的参数。

public JsonResult GetSummaryDetails(string TranNo, string BranchCode)
    {
        List<SummaryDetails> summaryDetails = new List<SummaryDetails>();
        dynamic user = Session["UserProfile"];
        var UserID = user[0].UserID.ToString();
        var UserCode = user[0].DeptCode.ToString();
        summaryDetails = dataAccessLayer1.GetAllSummaryDetails(TranNo,BranchCode);
        return Json((summaryDetails), JsonRequestBehavior.AllowGet);
    }

- 我在 DataAccessLayer 中的方法

public List<SummaryDetails> GetAllSummaryDetails(string TranNo, string BranchCode)
{
    List<SummaryDetails> lstSummaryDetails = new List<SummaryDetails>();
    using (SqlConnection con = new SqlConnection(conn))
    {
        SqlCommand cmd = new SqlCommand("spn_viewSummaryApproval", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@TranNo", TranNo);
        cmd.Parameters.AddWithValue("@BranchCode", BranchCode);

        con.Open();
        SqlDataReader rdr = cmd.ExecuteReader();

        while (rdr.Read())
        {
            SummaryDetails summaryDetails = new SummaryDetails();
            summaryDetails.EmployeeName = rdr["EmployeeName"].ToString();
            summaryDetails.ActionType = rdr["ActionType"].ToString();
            summaryDetails.ActionDateTime = rdr["ActionDateTime"].ToString();
            summaryDetails.Remarks = rdr["Remarks"].ToString();

            lstSummaryDetails.Add(summaryDetails);
        }
        con.Close();
    }
    return lstSummaryDetails;
}

- 这是我使用 DataTable 并传递给控制器​​的视图。

<script>    
$(document).ready(function () {

        var dataTable = $('#SummaryTable').DataTable({
            "language": {
                emptyTable: "No Transaction"

            },
            ajax: {
                url: "@Url.Action("GetSummaryTxn")",
                dataType: "json",
                retrieve: "true",
                processing: "true",
                serverSide: "true",    
                type: "POST",
                dataSrc: "",

            },
            order: [],
            columnDefs: [
                {
                    targets: [1],
                    orderable: false,
                }

            ],

            columns: [

                {data: "BranchName"},
                {
                   data: "TranNo",
                    render: function (data, type, row, meta) {
                        var valueTran = row.TranNo;
                        var valueBranch = row.BranchCode;
                        var TranNo = row.TranNo + '<button type="button" id="'+ valueBranch +'" data-value="'+ valueTran+ '" class="btn btn-sm btn-primary btnView"><i class="fas fa-arrow-right"></i></button>'

                       return TranNo;
                    },

                },
                {
                    data: "TranType"
                },

                { data: "RecordStatus" },
                { data: "RequestorName" },
                { data: "RequestDate" },
                { data: "LastApprover" },
                { data: "LastApproveDate" },
                { data: "TranDate" },
            ]    
        });
           });

</script>

这篇文章的可能重复。

您可以在 web.config 中设置 json 序列化的最大长度,如下所示:

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

Json((summaryDetails), JsonRequestBehavior.AllowGet)的调用也有自己的MaxJsonLength属性,您可以将其设置为某个上限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM