У меня есть действие контроллера в моем проекте, в котором требуется отображать сообщение об ошибке пользователю при определенных сценариях. Это действие происходит в POST:
[HttpPost]
public ActionResult DoSomeAction() {
if( someCondition )
return RedirectToAction("SomeActionError");
return RedirectToAction("Index");
}
public ActionResult SomeActionError() {
return View();
}
В настоящее время он настроен так, что он будет перенаправлен на действие контроллера ошибок. Мне не очень нравится этот подход, потому что в URL они видят /SomeActionError
, а это также означает, что пользователь может напрямую перейти к этому URL.
Является ли плохой дизайн / подход для установки какого-либо флага в TempData и перенаправления на другой контроллер, который проверяет наличие флага ошибки TempData?
Пример:
[HttpPost]
public ActionResult DoSomeAction() {
if( someCondition ) {
TempData["DoSomeActionError"] = true;
}
return RedirectToAction("Index");
}
public ActionResult Index() {
// check for error
if( TempData["DoSomeActionError"] ) {
return View("SomeActionError");
}
}
Это плохая идея? Есть ли другой подход, который делает что-то подобное (не позволяет пользователю непосредственно перейти к действию ошибки)? Я не хочу возвращать действие View on POST, потому что я не хочу, чтобы они обновлялись и вызывали еще один POST.