Asp.net mvc 使用Json.Encode序列化时检测到循环引用
我遇到的情况是Json.Encode在本地(localhost)工作,这是64位iis7 windows 7框 如果我部署到windows 2003 32位IIS6,我会得到循环引用错误。下面显示的“Error here”是错误开始的行Asp.net mvc 使用Json.Encode序列化时检测到循环引用,asp.net-mvc,json,json.net,Asp.net Mvc,Json,Json.net,我遇到的情况是Json.Encode在本地(localhost)工作,这是64位iis7 windows 7框 如果我部署到windows 2003 32位IIS6,我会得到循环引用错误。下面显示的“Error here”是错误开始的行 @*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here var model = '@Html.GetJson(Model)'; 有人看到这一点并解决了吗?(不含js
@*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here
var model = '@Html.GetJson(Model)';
有人看到这一点并解决了吗?(不含json.net)假设您使用的是实体框架,看看由该框架开发的实体将对该主题有所帮助。例如,我有一个名为Sessions的表和一个名为Enrollments的表,Enrollments表与Sessions表PK具有FK关系。这导致会话对象具有注册的集合,并且注册对象具有注册所针对的会话的虚拟实例。。。这反过来又指向一个注册的集合等。。。您可以了解情况,以及json序列化检测到循环引用问题的原因 解决方案不是查询代码中会话对象的集合,而是查询包含所有相同字段的匿名(非类型化)对象。防止Json.Encode()混淆,因为它不知道Entity Framework在代码隐藏/服务器端代码中可以使用的循环引用。请检查以下答案:
public static MvcHtmlString GetJson(this HtmlHelper htmlHelper, ViewModel vm)
{
string s = JsonConvert.SerializeObject(vm);
return new MvcHtmlString(s);
}