У меня есть форма на веб-странице, которую я отправляю, используя плагин jquery form. Эта форма включает в себя вариант загрузки файла. Действие MVC3, которое я публикую, возвращает JSON. Поскольку плагин возвращается к использованию iframe в старых браузерах, вам нужно заключить JSON в
<textarea>JSON data...</textarea>
Я попытался изменить тип возвращаемого значения действия на строку и просто добавить текстовую область тегами для объекта JSON. ToString (), но не получилось. Как мне обернуть мой результат JSON в текстовое поле, когда! Request.IsAjaxRequest ()
Вот пример того, как я просто пытаюсь вернуть JSON в виде строки (что не работает)
[HttpPost]
public string CreateEntry(EntryCreateViewModel model)
{
if (!ModelState.IsValid)
{
return WrapInTextArea(!Request.IsAjaxRequest(), Json(new object[] { false, 0, this.RenderPartialViewToString("_EntryCreateFormPartial", model) }).ToString());
}
Это работает в современных браузерах, но я подозреваю (на основе документов) произойдет сбой в старых браузерах, которые используют iframe
[HttpPost]
public ActionResult CreateEntry(EntryCreateViewModel model)
{
if (!ModelState.IsValid)
{
return Json(new object[] {false, 0, this.RenderPartialViewToString("_EntryCreateFormPartial", model)});
}