ASP.NET MVC ActionResult View() не меняет URL

У меня есть метод...

[HttpPost]
public ActionResult Start(SomeViewModel someViewModel) { ... }

что на основе некоторых условий возвращает такие вещи, как возврат View("Invalid"), View("NotFound"), View("Run", anotherViewModel)и т. д. Проблема в том, что независимо от того, какое представление я представляю, URL-адрес не изменяется, чтобы отразить новый контроллер / действие. Это создает проблему, когда мой View хочет опубликовать другое действие. Как я могу это исправить?

2 ответа

Решение

View(...) методы не перенаправляют, они просто отображают конкретное представление текущего запроса. Если вам нужно настроить таргетинг на конкретный URL-адрес в форме вашего представления, вы можете передать данные контроллера / действия методу формы:

Html.BeginForm("action", "controller")

... так далее

Если вы хотите изменить URL, вам нужно перенаправить на действие, связанное с этим URL, например

[HttpPost] 
public ActionResult Start(SomeViewModel someViewModel) 
{
  ...
  return RedirectToAction("SomeOtherAction");
}

Действие SomeOtherAction будет в свою очередь отображать вид.

Другие вопросы по тегам