Json.Encode が 64 ビット iis7 Windows 7 ボックスであるローカル (localhost) で動作している状況があります。
Windows 2003 32 ビット IIS6 に展開すると、循環参照エラーが発生します。「ここでエラー」の下に表示されているのは、エラーが始まる行です。
@*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here
var model = '@Html.GetJson(Model)';
これを解決しようとする一環として、サーバーで使用されていたプロジェクト dll の 1 つがローカルのものと異なる可能性があると考えたため、参照 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 なし)