У меня есть вид поиска, который использует AJAX для отправки запроса на сервер.В зависимости от объекта ответа, возвращаемого хранилищем, в окне поиска (представление, из которого был отправлен запрос) должно отображаться диалоговое окно (заполненное данными с использованием объекта Json), или пользователь должен быть перенаправлен в представление результатов (заполненноес данными из ответа, переданного как модель представления).
Теперь мне сказали (и испытали), что нельзя перенаправить, когда сообщение было сделано с использованием AJAX.Так есть ли способ перенаправить в другое представление и передать модель представления, если этот ответ был получен из репозитория, и просто отправить обратно объект Json, если должен быть показан результат диалога.
Мое действие контроллера, которое получаетотправленный поисковым представлением в настоящее время выглядит примерно так:
[HttpPost]
public ActionResult SomeAction(SearchRequest reqData)
{
ResponseBase response = worker.PerformSearch(reqData);
if (response is ViewResponse)
{
//Redirect to "AnotherView" and pass response as the view model.
return View("AnotherView", response as ViewResponse);
}
else if (response is DialogResponse)
{
//Return the Json object.
return Json(new { type = "dialogresponse", data = response });
}
else
{
//To do: Put error handling code here.
throw new NotImplementedException();
}
}