Json不发送数据
本文关键字:数据 Json | 更新日期: 2023-09-27 18:03:45
我的Json有奇怪的问题。
我正在做一个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(长majoraccountvalue){Myclass model = new Myclass ();model.FillData (majoraccountvalue);返回JsonConvert.SerializeObject (model.MinorAccountHeads);}
- 尝试在ajax参数中使用cache:false
- 失败-不正确。你需要使用'error'。