我正在调用一个方法,该方法返回一个具有相当一个字段子实体的实体。我不需要子实体,但因为它们处于关系中,因此我无法理解它。
当我检查json数据时,我正确得到响应。但是当我在datatable上设置断点时。
mRender: function (data, type, row) {
该行循环遍历json数据CHAR BY CHAR
`
$('#serviceTB').DataTable({
"processing": true,
"serverSide": true,
destroy: true,
searching: true,
"info": true,
"pageLength": 10,
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],
"sDom": "<'top'f>rt<'fluid-row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>><'fluid-row'<'col-md-12 col-sm-12'<'pull-right'l>>>",
"columns": [
{ "data": "article_number", "orderable": true, "searchable": true },
{ "data": "serial_number", "orderable": true, "searchable": true },
{ "data": "description", "orderable": false, "searchable": false },
{ "data": "Purchase_date", "orderable": true, "searchable": false },
{ "data": "rental_agreement", "orderable": false, "searchable": true },
{ "data": "service_agreement", "orderable": false, "searchable": true },
{ "data": "Warranty", "orderable": true, "searchable": true },
/* EDIT */ {
mRender: function (data, type, row) {
debugger
}
},
], "ajax": {
"url": "@Url.Action("GetMachineOwnerByType", "WMFMachine")",
"type": "GET"
}
});
}`
下面是我的json结果,其中包含jquery
所需的所有字段public JsonResult GetMachineOwnerByType(int draw, int start, int length, string searchstring = "", string orderstring = "", int ordercol = 0)
{
string search = Request.QueryString["search[value]"];
string order = Request.QueryString["order[0][dir]"];
int sortColumn = int.Parse(Request.QueryString["order[0][column]"]);
searchstring = search;
orderstring = order;
ordercol = sortColumn;
var result = service.GetListWMFMachineByType(draw, start, length, searchstring, orderstring, ordercol, "M");//mylogic to get the Model
return new JsonResult { Data = result, MaxJsonLength = Int32.MaxValue, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
` 模型CLass
public class JsonTableModel
{
public int draw { get; set; }
public int recordsTotal { get; set; }
public int recordsFiltered { get; set; }
public object data { get; set; }
}
逻辑
dt.data = JsonConvert.SerializeObject(mymodel, Formatting.None,
new JsonSerializerSettings()
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.None
});
答案 0 :(得分:0)
好的解决了。我关掉了
db.Configuration.ProxyCreationEnabled = false;
我不知道这是正确的方法。但它解决了这个问题。我从6小时前就开始研究这个问题。
关掉它之后我只是扔进原始实体,并没有对该对象进行任何序列化。