У меня есть действия контроллера, как это (очень упрощенный):JsonResult интерпретируется как строка в браузере
[HttpPost]
public JsonResult Submit()
{
Response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
return new JsonResult
{
ContentEncoding = Encoding.Default,
ContentType = "application/json",
Data = new {error = "xxxxxxxxxx"}
};
}
Дело в том только, что я хочу вернуться JSON, но результат в браузере строку. Вот это свойство из возвращенного объекта:
Чтобы использовать это сейчас, я должен сделать что-то вроде JSON.Parse
, и я не хочу этого. Действие контроллера должно просто вернуть json самостоятельно.
Я ранее видел свойство responseJSON
на объекте результата из запроса ajax в JavaScript.
EDIT: Я использую плагин формы jQuery, поэтому технически это тот, кто делает запрос. Вот код, где я инициализировать JQuery Form Plugin:
function initializeAjaxForm() {
var feedback = document.getElementById('feedback');
$('#upload-form').ajaxForm({
url: '/xxxx/Submit',
type: 'POST',
beforeSubmit: handleBeforeSubmit,
beforeSerialize: handlePreSerialize,
success: function (data) {
stopLoadingGif();
feedback.innerHTML = 'Yay!';
console.log(data);
},
error: function (data) {
debugger;
console.log(data);
stopLoadingGif();
feedback.innerHTML = 'Nay!';
}
});
}
Вот запрос в браузере:
EDIT 2: Вот заголовки ответа:
EDIT3:
Это, похоже, проблема в обработчике ошибок.
В результате в браузере является переменной Javascript. Это действительно поможет, если вы покажете нам, как вы вызываете контроллер из вашего клиентского кода. –
что вы используете в 'Content-Type' и' Data-Type' в вашем jquery-вызове? Поместите ваш синтаксис вызова jquery в свой вопрос. –
Просьба поделиться ссылкой на ваш Javascript – Tushar