2013-11-20 3 views
0

Я использую asp.net mvc 3 и возвращаю json пользователю. Я делаю это с:Установить тип содержимого на основе браузера

return Json(results, JsonRequestBehavior.AllowGet) 

Результаты - это просто класс viewmodel C#, который я создал. Это отлично работает в FF и chrome, но затем IE 9 просит открыть или сохранить результаты. Везде я смотрю, люди говорят, что «исправить», чтобы сделать что-то вроде:

return Json(results, "text/html", JsonRequestBehavior.AllowGet) 

Это работает для меня в IE, но он не работает в хроме и/или светлячок. Это делается для некоторых версий, но не для всех. Мне было интересно, можно ли вернуть текст/html, если браузер IE, иначе верните обычный JSON. Или есть лучшее решение? Заранее спасибо!

+0

Вы говорите, вы хотите, чтобы пользователь видел фактическое JSON отображается в браузере, перейдя к тому, что ваш URL является? (По сравнению с потреблением его через звонок Ajax или что-то в этом роде) – nnnnnn

ответ

1

Я предполагаю, что вы выполняете вызов AJAX, если у вас есть решение, это правильный способ заставить ВСЕ браузеры обрабатывать возвращаемые значения как HTML, что намного лучше, чем иметь дело с каждым браузером в другом путь.

Однако, чтобы иметь возможность работать с возвращаемыми значениями, вам необходимо проанализировать возвращенный html в JSON.

В успех обратного вызова вызова AJAX, просто добавьте следующее:

var jsonResponse = $.parseJSON(response); 
Смежные вопросы