[英]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); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.