我有 Json.Encode 在本地工作(本地主机)的情况,它是 64 位 iis7 windows 7 框。
如果我部署到 windows 2003 32 位 IIS6,我会得到循环引用错误。显示在“此处的错误”下方是错误开始的行。
@*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here
var model = '@Html.GetJson(Model)';
作为尝试解决此问题的一部分,我认为服务器上使用的项目 dll 之一可能与本地不同,因此我将任何引用 dll 复制到服务器 bin 目录。这没有帮助。
我确实有一个非常简单的修复程序。我本来希望能够识别问题。我的猜测是,它在服务器上使用的某些 dll 与在本地通过 Json.Encode 返回 json 的方式不同,然后在服务器上使用。
如上图第 2 行所示,我的解决方案是使用 Json.Net 和 mvc 助手
public static MvcHtmlString GetJson(this HtmlHelper htmlHelper, ViewModel vm)
{
string s = JsonConvert.SerializeObject(vm);
return new MvcHtmlString(s);
}
有没有人看到这个并解决了?(没有 json.net)