/ / Entität zu JSON-Fehler MVC - Beim Serialisieren eines Objekts vom Typ - json, Entity-Framework, Bootstrap-Tabelle - wurde ein Zirkelverweis erkannt

Entität zu JSON-Fehler MVC - Beim Serialisieren eines Objekts vom Typ - json, Entity-Framework, Bootstrap-Tabelle - wurde ein Zirkelverweis erkannt

Meine MVC-App verwendet eine Bootstrap-Tabelle.

Mein Modell ist meine Datenbanktabelle tSSTCodes, auf die mit Entity Framework zugegriffen wird

@ModelType IEnumerable(Of SupportDiary.tSSTCode)

Ich habe dieselbe Methode für andere Tabellen verwendet und sie funktionieren alle (die Tabelle wird generiert), aber diese Ansicht gibt einen Fehler zurück:

A circular reference was detected while serializing an object of type "System.Data.Entity.DynamicProxies.tSSTCode_8DE9547CF85FA0D8C54E713F4E2A7A2104EC7CB828A4B0F29604CE8AE871F8A3".

Die Linie, an der es bricht, ist ....

var tdata = @Html.Raw(Json.Encode(Model));

Modell ist eine einfache Tabelle. Dies ist die SQL, um es zu erstellen;

CREATE TABLE [dbo].[tSSTCodes](
[sstID] [int] IDENTITY(1,1) NOT NULL,
[sRU] [nvarchar](10) NOT NULL,
[sProjectCode] [nvarchar](10) NOT NULL,
[sProjectName] [nvarchar](50) NOT NULL,
[sTaskNo] [nvarchar](10) NOT NULL,
[sTaskName] [nvarchar](50) NOT NULL,
[sRedundant] [bit] NOT NULL CONSTRAINT [DF_tSSTCodes_sRedundant]  DEFAULT ((0)),
CONSTRAINT [PK_tSSTCodes] PRIMARY KEY CLUSTERED
(
[sstID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Mein Bootstrap-Tabellencode lautet

<table id="table"
data-classes="table table-hover table-condensed"
data-striped="true"
data-toolbar="#toolbar"
data-pagination="true"
data-click-to-select="true"
data-search="true"
data-show-export="true"
data-show-pagination-switch="true"
data-show-toggle="true"
data-show-columns="true" >
<thead>
<tr>
<th data-field="sstID" data-formatter="btnViewFormatter">ID</th>
<th data-field="sRU" >R/U</th>
<th data-field="sProjectCode" >Project Code</th>
<th data-field="sProjectName" >Project Name</th>
<th data-field="sTaskNo" >Task No</th>
<th data-field="sTaskName" >Task Name</th>
<th data-field="sRedundant" data-formatter="trueFalseFormatter" >Redundant</th>
</tr>
</thead>
</table>

Und die zugehörigen Skripte sind:

<script type="text/javascript">

var tdata = @Html.Raw(Json.Encode(Model));

console.log(tdata);

var $table = $("#table");

function btnViewFormatter(value) {
return "<a class="btn btn-default btn-sm" href="@Url.Content("~/SSTCodes/Edit?id=")" + value + "" >" + value + "</a>";
}

function trueFalseFormatter(value) {
if (value == true){
return "<span class="glyphicon glyphicon-check"></span>";
} else {
return "<span class="glyphicon glyphicon-unchecked"></span>";
}
}

function getSelectedRow() {
var index = $table.find("tr.success").data("index");
return $table.bootstrapTable("getData")[index];
}

$(function () {

$table.bootstrapTable({
data: tdata,
fixedColumns:    true,
fixedNumber: 1,
exportDataType:"all",
exportTypes:["csv", "txt", "excel"]
});

$table.on("click-row.bs.table", function (e, row, $element) {
$(".success").removeClass("success");
$($element).addClass("success");
});

$table.on("dbl-click-row.bs.table", function (e, row, $element) {
var url = "@Url.Content("~/SSTCodes/Edit?id=")" + getSelectedRow().sstID;
window.navigate(url);
})

});

Ich kann nicht herausfinden, was den Zirkelverweis verursacht ... Beim Debuggen habe ich es versucht console.log(tdata); nach der beleidigenden Linie platziert, aber natürlich kommt es nicht so weit ... also habe ich es versucht console.log(@Html.Raw(Json.Encode(Model))); und bekam den gleichen Fehler in der Zeile console.log.

AKTUALISIEREN Links zu einem möglichen Duplikat einer anderen Fragesind keine Hilfe. Mein Code basierte auf der Generierung eines neuen MVC-Controllers mithilfe der Assistentenvorlage von ADO Entity Frameworks. Dies bildete eine Reihe von CRUD-Ansichten. Ich habe dann nur die HTML-Tabelle a für jeden Artikelcode durch einen Bootstrap-Tabellenhelfer ersetzt. Ich habe dies mit mehreren Controllern gemacht und sie funktionieren alle.

Jede Hilfe wird geschätzt.

Antworten:

0 für die Antwort № 1

Es scheint, dass Entity Frameworks Probleme mit Gerüsten haben können, wenn es um Beziehungen geht. Bei dieser Tabelle musste ich meine eigenen Ansichten und meinen eigenen Code erstellen.