Имам ситуация, при която Json.Encode работи локално (localhost), което е 64-битова iis7 кутия за Windows 7.
Ако разположа в Windows 2003 32 bit IIS6, получавам кръгови референтни грешки. Показаният по-долу „Грешка тук“ е редът, от който започва грешката.
@*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here
var model = '@Html.GetJson(Model)';
Като част от опита си да разреша това, си помислих, че може би един от проектните dll файлове, които се използват на сървъра, е различен от този локално, така че копирах всички референтни dll в директорията bin на сървъра. Това не помогна.
Имам решение, което е доста лесно. Бих предпочел да мога да идентифицирам проблема. Предполагам, че използва някаква dll на сървъра различно от локално, за да върне json чрез Json.Encode след това на сървъра.
Моята резолюция, както е показано на 2-ри ред по-горе, е да използвам Json.Net и mvc помощник
public static MvcHtmlString GetJson(this HtmlHelper htmlHelper, ViewModel vm)
{
string s = JsonConvert.SerializeObject(vm);
return new MvcHtmlString(s);
}
Някой виждал ли е това и разрешавал ли е? (без json.net)