C# ASP.NET MVC ActionResult视图()未更改url

C# ASP.NET MVC ActionResult视图()未更改url,c#,asp.net,asp.net-mvc,asp.net-mvc-2,actionresult,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 2,Actionresult,我有一个方法 [HttpPost] public ActionResult Start(SomeViewModel someViewModel) { ... } 基于某些条件返回的内容,如返回视图(“无效”),视图(“未找到”),视图(“运行”,另一个视图模型),等等。问题是,无论我呈现什么视图,URL都不会更改以反映新的控制器/操作。当我的观点想要发布到不同的操作时,这会带来一个问题。如何修复此问题?如果要更改URL,需要重定向到与该URL关联的操作,例如 [HttpPost] publi

我有一个方法

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

基于某些条件返回的内容,如返回
视图(“无效”)
视图(“未找到”)
视图(“运行”,另一个视图模型)
,等等。问题是,无论我呈现什么视图,URL都不会更改以反映新的控制器/操作。当我的观点想要发布到不同的操作时,这会带来一个问题。如何修复此问题?

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

[HttpPost] 
public ActionResult Start(SomeViewModel someViewModel) 
{
  ...
  return RedirectToAction("SomeOtherAction");
}
操作
SomeOtherAction
将依次显示视图。

视图(…)方法不重定向,它们只是根据当前请求呈现特定视图。如果需要以视图的形式将特定url作为目标,可以将控制器/操作详细信息传递给表单方法:

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

。。。etc

+1以尽可能明确地说明无法重定向的视图。如果您使用controller.excute从帮助器类或全局.asax重定向,这将如何工作?返回ViewResult(通过调用View(…)基本上返回一组HTML以响应当前请求。如果要更改URL,即让浏览器从新地址获取数据,则应返回重定向结果。这就是Serge的代码所做的。如果使用controller.excute从helper类或global.asax重定向,这将如何工作?