Вместо перенаправления,
[HttpGet]
public ActionResult Index()
{
/// preform any processing necessary for your index page on GET
return View("Index");
}
[HttpPost]
public ActionResuit Edit(EditViewModel itemView)
{
if (ModelState.IsValid)
{
/// do whatever you want with your model...
}
// return the contents as they'd be rendered by the Index action
return Index();
}
Обратите внимание, что при использовании этого метода URL-адрес в браузере будет по-прежнему отображать URL-адрес редактирования (например, /area_name/edit
), но это можно исправить следующим образом:
- Использование перенаправления (которое, как вы сказали, не хотите делать)
- Использование JavaScript для обновления URL-адреса или использование
history.back()
в соответствии с предложением @AlanStephens - Вероятно, другие методы, которые не сразу приходят на ум.
Однако я бы усомнился, действительно ли это лучший подход.Как правило, пользователи ожидают, что разные URL будут выполнять разные действия.
Или, если я вас правильно понимаю, и действие редактирования вызывается со страницы индекса,
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost] /// from a form on Index
public ActionResult Index(EditViewModel model)
{
if (ModelState.IsValid)
{
////
}
return View();
}
и просто берите /Edit
полностью вне игры.Опять же, мне не очень важен такой подход.