C# 显示的URL与视图不匹配

C# 显示的URL与视图不匹配,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我们正在C#(.NET 4.5,VS2012)中开发一个MVC 4应用程序,我遇到了一个导航问题,其中控制器(ReportsController.cs)显式命名要返回的视图,如: return View("BeginDataExport", exList); (“exList”是模型。)但是,浏览器中显示的URL显示以前的视图名称,即使呈现的视图是所需的视图。当表单发布时,它将发布到错误的控制器方法 如果显式命名要返回的视图(如本例中所示),为什么URL会显示不同的视图名称,即使显示的页面是正

我们正在C#(.NET 4.5,VS2012)中开发一个MVC 4应用程序,我遇到了一个导航问题,其中控制器(ReportsController.cs)显式命名要返回的视图,如:

return View("BeginDataExport", exList);
(“exList”是模型。)但是,浏览器中显示的URL显示以前的视图名称,即使呈现的视图是所需的视图。当表单发布时,它将发布到错误的控制器方法

如果显式命名要返回的视图(如本例中所示),为什么URL会显示不同的视图名称,即使显示的页面是正确的视图

谢谢,
Peter

如果希望更改URL,则需要使用
返回重定向操作()
(或其他重定向变体),而不是
返回视图()
。实际上,代码是使用相同的路由数据执行的(因此没有URL更改),但您只是指定要使用的模板。

除非您有自定义路由设置,否则URL的格式为
控制器/操作
,它不会以任何方式反映视图的路径。因此,如果表单post的位置有问题,那么它一定是视图本身内部的问题。我通过将视图中的行从
@using(Html.beginnotify())
更改为
@using(Html.beginnotify(“BeginDataExport”,“Reports”)
来解决这个问题,现在它可以根据需要工作了。URL仍然显示上一个操作。当您想返回不同的视图时,这是解决此问题的正确方法吗?还是我应该使用
RedirectToAction()
方法?只要您不转到另一个URL(即返回
RedirectTo*
结果),URL就会被保留。如果需要更改URL,最简单的方法是重定向到该操作。