Есть ли способ добавить результат JSON, который будет использоваться параметрами OnSuccess или OnFailure AJAX.BeginForm, когда контроллер использует синтаксис возврата View (модель)?
Все довольно стандартно C # / MVC. Ajax.BeginForm будет выглядеть так
@using (Ajax.BeginForm("AnyAction", "Home", null,
new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "OnBegin",
OnFailure = "OnFailure(xhr, status)",
OnSuccess = "OnSuccess(xhr, status)"
},
new { id = "myform" }))
Сценарии OnSuccess и OnFailure определены следующим образом
function OnSuccess(xhr, status) {
console.log("OnSuccess");
}
function OnFailure(xhr, status) {
console.log("OnFailure");
}
Контроллер возвращается вот так
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotAcceptable;
return View(model);
Я могу добавить HTTPStatusCode, OK или Not OK, в HTTPContext.Response, и это вызовет функции JavaScript OnSuccess или OnFailure. Исходя из этого, я знаю, что могу манипулировать потоком ответов, но есть ли возможность добавить JSON-ответ в HTTPContext.Response, чтобы OnSuccess или OnFailure могли его использовать.
Как передать это, используя синтаксис возврата View (модель), в функцию OnSuccess?
dynamic jsonMessage;
jsonMessage = new { param1 = "ModelState", param2 ="Error", param3 = "Error Message" };
Несколько быстрых заметок:
Это не требование, просто вопрос.
Я уже использую Return JSON (jsonMessage, JsonRequestBehavior.AllowGet) где-то еще в моем проекте, помощь в этом не требуется.