簡體   English   中英

Json不發送數據

[英]Json Not sending data

我對Json有一個奇怪的問題。

我正在對Controller方法進行ajax調用,該方法將字符串作為輸入並發送回我的類的列表。

基本上,我在更改下拉菜單時進行json調用,以加載另一個下拉菜單的相應字段。

在下拉菜單1中,我有2個選項和一個占位符(“選擇”)。

奇怪的是,當我選擇2選項時,它會將數據添加到下拉菜單2中。但是,如果我選擇選項1,則它不會在json調用中獲取數據,因此不會在下拉菜單中添加任何內容菜單2,盡管我的控制器功能正在返回json中的數據。

我的json通話如下:

function changeTable() {
            var index = 0;
            var info = { majoraccountvalue: document.getElementById("expancesMajorAccount").value };
            var dropdowm = $("#expancesMinorAccountName");
            jQuery.ajax({
                type: "POST",
                url: "@Url.Action("GetData")",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(info),
                success: function (data) {
                    debugger;
                    var arr = data.MinorAccountHeads;
                    dropdowm.empty()
                    alert(data);

                    for (index = 0; index < arr.length; index++) {
                        dropdowm.append($('<option></option>').val(arr[index].ID).html(arr[index].Name));
                    }
                },
                failure: function (errMsg) {
                    alert(errMsg);
                }
            });
        }

我的控制器方法是:

public JsonResult GetData(long majoraccountvalue)
     {
         Myclass model = new myclass();
         model.FillData(majoraccountvalue);
         return Json(new { model.MinorAccountHeads });
     }

我的控制器函數在兩種情況下都返回數據。 當我選擇選項1以及是否選擇選項2時。

謝謝

我能夠解決該錯誤。 由於此人親自認識我,因此我能夠幫助他解決問題。

基本上,問題在於該函數正在發送的數據的序列化:public JsonResult GetData(long majoraccountvalue)

該函數通過序列化模型返回Json數據。自定義數據庫實體對象的MinorAccountHeads列表。

使用上面的方法代碼進行序列化時,存在一個自引用循環。

我可以通過使用Newtonsoft.json庫更改方法來解決此問題:公共對象GetData(long majoraccountvalue){Myclass model = new myclass(); model.FillData(majoraccountvalue); 返回JsonConvert.SerializeObject(model.MinorAccountHeads); }

  1. 嘗試在ajax參數中使用cache:false。
  2. 失敗-不正確。 您需要使用“錯誤”。 可能是您收到錯誤的第一個請求...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM