2

我有一个方法...

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

根据某些条件返回诸如 return View("Invalid")View("NotFound")View("Run", anotherViewModel)等的东西。问题是无论我呈现什么视图,URL 都不会改变以反映新的控制器/动作。当我的视图想要发布到不同的操作时,这会带来问题。我怎样才能解决这个问题?

4

2 回答 2

11

如果要更改 URL,则需要重定向到与该 URL 关联的操作,例如

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

该操作SomeOtherAction将依次显示视图。

于 2011-02-06T22:06:59.350 回答
8

这些View(...)方法不会重定向,它们只是呈现当前请求的特定视图。如果您需要以视图的形式定位特定的 url,您可以将控制器/操作详细信息传递给 form 方法:

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

... ETC

于 2011-02-06T22:08:05.660 回答