gpt4 book ai didi

c# - JSONResult 的问题

转载 作者:行者123 更新时间:2023-11-28 10:33:07 26 4
gpt4 key购买 nike

我对此还是新手,所以我会尝试解释我在做什么。基本上我想要的是根据前一个下拉列表的值加载一个下拉列表,并且我希望它加载数据并在另一个列表更改时出现。这是我在 Controller 中编写的代码:

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 循环,因为我不太确定这是否是访问数据的方式,因为我无法使其在找到记录时工作。谁能帮我吗?

提前致谢,维克多

最佳答案

终于解决了这个问题。问题在于,由于某种原因,JSON 无法显示相互引用的对象,这些对象存在外键等问题。我创建了一个新类,其中包含数据库中所需的字段,并使用 foreach 语句填充它。然后我将填充的 IList 传递给返回 Json,它起作用了......

谢谢大家的帮助,维克多

关于c# - JSONResult 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com