【发布时间】:2018-02-26 06:24:25
【问题描述】:
我尝试在局部视图中使用 DevExtreme 组件。 但是当我点击元素时会显示我的部分视图页面。
点击后在主页出现错误
Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'ApplicationEntity' with type 'System.Data.Entity.DynamicProxies.ApplicationEntity_50A6A66F1464C1DE4E8A736E85D88C5AF4F4249EAE26FB21C4F82592E001885D'. Path 'data[0].ApplicationEntity.ApplicationEntityHistories[0]'.
主页代码:
<div class="row">
<div class="col-md-7">
<button id="btn">CLICK</button
</div>
<div class="col-md-5" id="divPartialViewContainer">
</div>
</div>
<script>
$(document).ready(function () {
$("#btn").on("click", function () {
var text = $(this).text().trim();
if (text.length > 0) {
console.log(text);
$.ajax({
url: '/RiskMap/RiskDetailsPartial/',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ 'param': text }),
success: function (content) {
$('#divPartialViewContainer').html(content);
},
error: function (e)
{
console.log(e);
}
});
}
});
});
</script>
控制器代码
[HttpPost]
public async Task<ActionResult> RiskDetailsPartial(string param)
{
return PartialView("_RiskDetails", new List<Risk>());
}
部分查看代码:
@model IEnumerable<Core.Models.Risk>
@using Core.Models
@using Core.ComplexTypes
@{
ViewBag.Title = "Risks";
}
<h2>Risks</h2>
@(Html.DevExtreme().DataGrid<Risk>()
.DataSource(Model)
.Columns(columns =>
{
columns.AddFor(m => m.Id);
columns.AddFor(m => m.Impact);
columns.AddFor(m => m.Probability);
})
)
【问题讨论】:
-
您的项目中有 Newtonsoft DDL 吗?
-
您的项目中有 Newtonsoft DDL 吗?是的
-
google.co.uk/… 您是否使用实体框架类作为模型?
-
是的,我在我的 WebApiConfig 类中添加了这个 config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;,但它没有帮助
-
@SamatYeshernkulov 如果
ReferenceLoopHandling.Ignore不能帮助检查我的answer to a similar question 中建议的其他选项。
标签: javascript c# ajax asp.net-mvc devextreme