У меня есть форма, которую я использую для добавления данных в мою базу данных. Я использую Ajax.BeginForm(), чтобы отправлять данные в контроллер, а затем выполнять хранимую процедуру для сохранения данных. В результате я хочу показать ошибку, если хранимая процедура не сможет добавить данные и перенаправить на другую страницу в другом случае. Поэтому я сделал что-то подобное в своем контроллере.Перенаправление на другую страницу после запроса ajax
if (succees)
{
return RedirectToAction("ModificationPage", new { id = posted.articleId });
}
else
ViewData["ErrorMessage"] = msg;
return PartialView("_error");
_error - это простой частичный просмотр, отображающий сообщение об ошибке. Моя проблема заключается в том, что когда хранимая процедура добавляет данные, а не перенаправляется на страницу модификации, страница модификации считывается внутри представления. Есть ли способ в asp mvc, который может исправить это?
Ajax требует пребывания на той же странице. Если вы хотите перенаправить, просто выполните стандартную отправку (нет никакой реальной пользы в использовании ajax), а затем, если есть ошибка, добавьте ошибку состояния модели и верните представление или перенаправите страницу ошибки. –
@StephenMuecke Это то, что на самом деле используется, но проблема в том, что при возникновении ошибки я должен обновить страницу, и это занимает много времени, и с ajax я просто обновляю небольшую часть страницы – AnotherGeek
Нет вашего нет. Вы используете 'Ajax.BeginForm()', который является ajax-вызовом. Просто используйте 'Html.BeginForm()' и выполните стандартную отправку, если вы хотите перенаправить. –