Ответ 1
Есть несколько трюков, которые вы можете использовать для этого.
Самый простой - это...
return Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri);
AbsoluteUri может не дать вам точный путь, который вы ищете, но UrlReferrer должен иметь требуемую имформацию. Redirect возвращает подкласс ActionResult, поэтому он является допустимым возвращаемым значением.
Другая идея состоит в том, чтобы основать местоположение перенаправления на сохраненные значения. Это полезно, когда вы собираетесь делать несколько запросов до того, как хотите перенаправить, например, когда вы проверяете форму и показываете проблемы проверки в первом ответе. Другая ситуация будет, когда реферер не является локальным сайтом. В любом случае ваш реферер не будет тем, что вы хотите, и вам нужно будет найти правильное местоположение из другого места.
Конкретные реализации включают использование скрытого поля ввода в вашей форме, состояние сеанса, вытягивание значения дискриминатора из ваших данных маршрута или даже просто более постоянное значение, например HttpContext.Request.ApplicationPath.
Удачи.