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
будет в свою очередь отображать вид.