簡體   English   中英

JSONResult問題

[英]Problem with JSONResult

我對此還不滿意,所以我將盡力解釋我在做什么。 基本上,我想要的是根據上一個列表的值加載一個下拉列表,並且我希望它加載數據並在另一個更改時顯示。 這是我在控制器中編寫的代碼:

public ActionResult GetClassesSearch(bool ajax, string phylumID, string kingdom){
  IList<TaxClass> lists = null;
  int _phylumID = int.Parse(phylumID);
  int _kingdom = int.Parse(kingdom);
  lists = _taxon.getClassByPhylumSearch(_phylumID, _kingdom);
  return Json(lists.count);
}

這就是我從javascript函數中調用方法的方式:

function loadClasses(_phylum) {
 var phylum = _phylum.value;

 $.getJSON("/Suspension/GetClassesSearch/",
         { ajax: true,
             phylumID: phylum,
             kingdom: kingdom
         },
         function(data) {
             alert(data);
             alert('no fallo')
             document.getElementById("pClass").style.display = "block";
             document.getElementById("sClass").options[0] = new Option("-select-", "0", true, true);
             //for (i = 0; i < data.length; i++) {
             //   $('#sClass').addOption(data[i].classID, data[i].className);
             //}
         });

}

關聯的HTML是:

<p id="pPhylum">
                <%= Html.Label("Phylum: ") %>
                <%= Html.DropDownList("sPhylum",
                          (SelectList)ViewData["PhyRecID"],
                      "--Select One--",
                      new { onchange = "loadClasses(this);" }
                      )%>
</p>
<p id="pClass">
                <%= Html.Label("Class: ") %> <select id="sClass"></select>
</p>

事實是,就像它正常工作一樣,我向函數傳遞了所選門上的類數,並且顯示了pclass元素,當我嘗試用數據填充slist時問題就出現了(該數據應該包含從中檢索到的對象數據庫),因為當數據庫返回的數據更改了return Json(lists)而不是return Json(lists.count)時,我一直收到相同的錯誤:

序列化類型為'SubSonic.Schema.DatabaseColumn'的對象時,檢測到循環引用。

我一直在進行調試和測試,但是我無法使其正常工作,這被認為是一件簡單的事情,但是我卻缺少了一些東西。 我已經評論了for循環,因為我不確定這是否是您訪問數據的方式,因為在找到記錄時我無法使其工作。 誰能幫我?

在此先感謝Victor

最后我解決了這個問題。 問題在於,由於某種原因,JSON無法顯示相互引用的對象,這些對象存在外鍵和內容問題。 我僅使用數據庫中需要的字段創建了一個新類,並使用foreach語句填充了該類。 然后,我將填充的IList傳遞給返回的Json,它起作用了……

謝謝大家的幫助,維克多

暫無
暫無

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

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