C# MongoDB objectID在datatables渲染中变为[object object]
我正在使用mongoDB构建web应用程序作为数据库和数据表来处理我的表。 我的问题是,在渲染过程中,我获取了[object object],而不是从mongodb检索中获取ObjectID 因此,在html中,我有以下代码:C# MongoDB objectID在datatables渲染中变为[object object],c#,ajax,mongodb,datatables,C#,Ajax,Mongodb,Datatables,我正在使用mongoDB构建web应用程序作为数据库和数据表来处理我的表。 我的问题是,在渲染过程中,我获取了[object object],而不是从mongodb检索中获取ObjectID 因此,在html中,我有以下代码: var t = $("#general-table-list").DataTable({ sAjaxSource: "/AccountCategories/Get", "bFilter": false, "deferLoad
var t = $("#general-table-list").DataTable({
sAjaxSource: "/AccountCategories/Get",
"bFilter": false,
"deferLoading": 0,
"columnDefs": [
{
'targets': 2,
'searchable': false,
'orderable': true,
'className': 'dt-body-center',
'render': function (data, type, full, meta) {
return '<a href="/AccountCategories/Details/' + full.Id.toString() + '" class="btn btn-info"><span class="fa fa-edit"></span> Edit</a> ';
}
}],
"select": [
{
"style" : "os",
"selector": "td:first-child"
}
],
"columns": [
{ "data": null, "orderable": false },
{ "data": "Name", "orderable": false },
{ "data": "Action", "orderable": false }
],
"order": [],
})
t.on('order.dt search.dt', function () {
t.column(0, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) {
cell.innerHTML = i + 1;
});
}).draw();
以下是截图:
这是在UI上呈现的内容:
我怎样才能解决这个问题?谢谢你的帮助
==更新====
我通过更改Id成功地解决了这个问题
发件人:
致:
您的
Id
是一个完全解构的bson对象(如调试器中所示)。您的服务器似乎正在以这种方式序列化Id
。在服务器上,你就可以解决这个问题
不能说我以前见过服务器序列化这样的Id(默认情况下)。与Mongoose一样,更常见的情况是,您会看到一个Id erronosuly jsonified为_bson对象,而不是一个简单的24字符十六进制字符串
无论如何,解决方案存在于您的mongo界面中,它是jsoninfyng API的结果。谢谢,我已经设法修复了它,详细信息已添加到帖子中。:)
public JsonResult Get(DataTableParameters param)
{
var data = _helper.GetData(param);
return Json(data, JsonRequestBehavior.AllowGet);
}
[BsonId]
public ObjectId Id { get; set; }
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }