2016-05-05 9 views
1

Ich baue Web-Anwendung mit MongoDB als Datenbank und Databases, um meine Tabelle zu verarbeiten. Mein Problem ist, während des Renderns habe ich [Objekt Objekt], anstatt die ObjectID von Mongob Abruf erhalten.MongoDB objectID wird [Objektobjekt] in Datentabellen rendern

So in html Ich habe diesen Code:

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(); 

Wie erhalte ich die Daten:

public JsonResult Get(DataTableParameters param) 
{ 
    var data = _helper.GetData(param); 
    return Json(data, JsonRequestBehavior.AllowGet); 
} 

unten sind die Screenshot:

http://i117.photobucket.com/albums/o56/po_se_for/deep-code_zpslm86n7qi.png

das ist, was gerendert auf UI:

http://i117.photobucket.com/albums/o56/po_se_for/deep-code-html_zpsyp8dwjgb.png

Wie kann ich das beheben? Schätzen jeder hilft

==== ==== UPDATE

ich dies die Id beheben verwaltet durch Änderung aus:

[BsonId] 
public ObjectId Id { get; set; } 

zu:

[BsonId] 
[BsonRepresentation(BsonType.ObjectId)] 
public string Id { get; set; } 

Antwort

1

Ihr Id ist ein vollständig dekonstruiertes _bson-Objekt (wie in Ihrem Debugger zu sehen). Es sieht so aus, als ob Ihr Server die Id auf diese Weise serialisiert. Und es ist dort auf dem Server, dass Sie das beheben können.

Ich kann nicht sagen, dass ich jemals gesehen habe, dass ein Server eine ID so serialisiert (sowieso sowieso). Häufiger als bei Mongoose wird eine ID fälschlicherweise als ein _bson-Objekt und nicht als einfache 24-Zeichen-Hex-Zeichenfolge angezeigt.

Wie auch immer, die Lösung existiert in Ihrer Mongo-Schnittstelle, die die Ergebnisse für Ihre API jsoninfyng ist.

+0

danke, ich habe es geschafft, es bereits zu beheben, Details auf dem Post hinzugefügt. :) – Gerry

Verwandte Themen