У меня есть ситуация, когда Json.Encode работает локально (localhost), который представляет собой 64-битное окно iis7 Windows 7.
Если я развертываю 32-битный IIS6 в Windows 2003, я получаю циклические ошибки ссылки. Ниже "Ошибка здесь" показана строка, с которой начинается ошибка.
@*var model = '@Html.Raw(Json.Encode(Model))';*@ <<<<Error here
var model = '@Html.GetJson(Model)';
В рамках попытки решить эту проблему я подумал, что, возможно, одна из dll проекта, которая использовалась на сервере, отличалась от локальной, поэтому я скопировал любую ссылочную dll в каталог bin сервера. Это не помогло.
У меня есть довольно простое исправление. Я бы предпочел идентифицировать проблему. Я предполагаю, что он использует некоторую dll на сервере иначе, чем локально, чтобы вернуть json через Json.Encode затем на сервере.
Мое решение, показанное во второй строке выше, - использовать Json.Net и помощник mvc.
public static MvcHtmlString GetJson(this HtmlHelper htmlHelper, ViewModel vm)
{
string s = JsonConvert.SerializeObject(vm);
return new MvcHtmlString(s);
}
Кто-нибудь это видел и решил? (без json.net)