asp.net – 在序列化“System.Reflection”类型的对象时检测到循
发布时间:2020-12-15 19:23:18 所属栏目:asp.Net 来源:网络整理
导读:我有一个asp.net MVC 3控制器操作方法如下: public JsonResult GetRecordingRates(int Id){ ListDefaultRateChart defaultRateCharts = new ListDefaultRateChart(); using (IDefaultRateChartManager defaultRateChartManager = new ManagerFactory().GetD
我有一个asp.net MVC 3控制器操作方法如下:
public JsonResult GetRecordingRates(int Id) { List<DefaultRateChart> defaultRateCharts = new List<DefaultRateChart>(); using (IDefaultRateChartManager defaultRateChartManager = new ManagerFactory().GetDefaultRateChartManager()) { defaultRateCharts = defaultRateChartManager.GetAll().Where(rc => rc.Currency.Id == Id && (!rc.NumberPrefix.StartsWith("#") || rc.NumberPrefix.StartsWith("Default")) && rc.AccountCredit == "Credit").ToList(); } return Json(defaultRateCharts); } 我想发送这个列表到jquery ajax成功的方法,但我得到500内部服务器错误 我的ajax电话是这样的: $.ajax({ type: "POST",dataType: "json",url: "/Home/GetRecordingRates",data: { Id: $("#hdCurrencyId").val() },success: function (data) { alert(data); } }); 在firebug XHR的响应标签下,它说: 在序列化“System.Reflection.RuntimeModule”类型的对象时检测到循环引用. [编辑] 我把这个动作方法改成了: public JsonResult GetRecordingRates(int Id) { List<DefaultRateChart> defaultRateCharts = new List<DefaultRateChart>(); using (IDefaultRateChartManager defaultRateChartManager = new ManagerFactory().GetDefaultRateChartManager()) { defaultRateCharts = defaultRateChartManager.GetAll().Where(rc => rc.Currency.Id == Id && (!rc.NumberPrefix.StartsWith("#") || rc.NumberPrefix.StartsWith("Default")) && rc.AccountCredit == "Credit").ToList(); } return this.Json( new { Result = (from obj in defaultRateCharts select new { Id = obj.Id,DialPrefix = obj.NumberPrefix,Rate = obj.PurchaseRates }) },JsonRequestBehavior.AllowGet ); } 我现在没有得到这个错误,但是如何解析ajax成功的集合.我改变了成功跟随,但它没有在表中添加行. success: function (data) { var row = $('<tr>'); for(var i = 0; i < data.length; i++) { row.append($('<td>').html(data[i])); } $('#results').append(row); jQuery('#RecordingRates').dialog({ cloSEOnEscape: false }); $(".ui-dialog-titlebar").hide(); $("#RecordingRates").dialog({ dialogClass: 'transparent' }); $('#RecordingRates').dialog('open'); } }); 在Firebug Net => XHR => Json,它显示以下JSON: [Object { Id= 1,DialPrefix= "1",Rate= 2.6 },Object { Id= 3,DialPrefix= "2",Object { Id= 5,DialPrefix= "7",Rate= 3.5 },3 more...] 0 Object { Id= 1,Rate= 2.6 } 1 Object { Id= 3,Rate= 2.6 } 2 Object { Id= 5,Rate= 3.5 } 3 Object { Id= 7,DialPrefix= "8",Rate= 6 } 4 Object { Id= 9,DialPrefix= "Default",Rate= 5 } 5 Object { Id= 15,DialPrefix= "Subscription",Rate= 15 } 解决方法
您正在返回一个包含以下字段的集合:Id,DialPrefix,Rate,而您没有使用它们. var row = $('<tr>'); for(var i = 0; i < data.length; i++) { row.append($('<td>').html(data[i])); } $('#results').append(row); 您需要将它们添加到您的循环中: row.append($('<td>').html(data[i].DialPrefix)); row.append($('<td>').html(data[i].Rate)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- IIS / .NET上的Blackberry推送服务启动器
- ASP.Net将用户数据存储在验证Cookie中
- ASP.NET MVC使用Oauth2.0实现身份验证
- ASP.NET MVC4 WebAPI和Posting XML数据
- asp.net – 如何处理从“DBNull”类型到“String”类型的转
- asp.net – 在wcf服务中使用aspNetCompatibilityEnabled =“
- asp.net-web-api – 如何在ASP.NET Web API中设置默认序列化
- Asp.Net MVC验证 – 依赖字段
- MSTest与Ninject,MVC3和WCF
- asp.net-mvc – ASP.NET MVC/C++#:可以使用Html.ActionLin