Ana*_*and 4 asp.net-mvc jquery json asp.net-ajax asp.net-mvc-4
我试图使用jQuery在JSON结果中返回MVC模型的对象.我收到一条失败消息:
序列化"System.Reflection.RuntimeModule"类型的对象时检测到循环引用
这是我的控制器,我正在回顾Json的结果
public ActionResult populateData(string application, string columns, string machine, string pages, string startDate, string endDate)
{
ErrorPage _objError = new ErrorPage();
_objError.ErrorData = dbl.GetDataTable(DbConnectionString, Table, whereCondition, columns);
//Column description: Name and Type
var columnlist = new Dictionary<string, System.Type>();
foreach (System.Data.DataColumn column in _objError.ErrorData.Columns)
{
var t = System.Type.GetType( column.DataType.FullName );
columnlist.Add(column.ColumnName, t);
}
_objError.ErrorColumns = columnlist;
//DataSourceRequest result = _objError.ToDataSourceResult(request);
if (_objError.ErrorData.Rows.Count > 0)
Message = "Showing Error log for " + AppName + " . To Change the application or filtering options please select the appropriate application from Application Dropdown";
else
Message = "No errors found for " + AppName + " in last 24 hours.";
return Json(_objError);
}
Run Code Online (Sandbox Code Playgroud)
这里我给Controller方法一个Ajax调用:
$.ajax({
type: "POST",
url: '@Url.Content("~/Common/PopulateData")',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify({ application: app, columns: columns, machine: machine, pages: pages, startDate: startDate, endDate: endDate }),
success: function (data) {
alert("Success");
},
error: function (error) {
alert('error; ' + eval(error));
alert('error; ' + error.responseText);
}
});
Run Code Online (Sandbox Code Playgroud)
请帮助如何将Model类对象返回到Ajax post调用?
我们在这里寻求解决方案
我使用下面的代码修改了我的代码,它对我有用
public JsonResult populateData(string application, string columns, string machine, string pages, string startDate, string endDate)
{
ErrorPage _objError = new ErrorPage();
var ErrorResult = _objError.GetErrorData(application, columns, machine, pages, startDate, endDate);
var result = JsonConvert.SerializeObject(ErrorResult.ErrorData, Formatting.Indented,
new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
return Json(result, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我们需要对对象进行搜索,而不是发送Model的直接对象.
谢谢.
| 归档时间: |
|
| 查看次数: |
23891 次 |
| 最近记录: |