ASP.NET MVC ActionResult View () не меняет URL - PullRequest
2 голосов
/ 07 февраля 2011

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

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

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

Ответы [ 2 ]

11 голосов
/ 07 февраля 2011

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

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

Действие SomeOtherAction в свою очередь отобразит представление.

8 голосов
/ 07 февраля 2011

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

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

... и т. Д.

...