MVC 3尝试将URL启动到View而不是控制器操作

有时当我启动我的MVC 3项目时,它会尝试为正在呈现的视图加载完全限定的URL,而不是控制器中的操作(这给了我404错误)。 其他时候它工作正常,实际上按照预期的方式击中控制器动作,但它大约是50/50。

它有时会访问的URL是: http://localhost:xxxx/Views/Account/LogOn.cshtml

以下是Global.asax文件中的默认路由设置:

 routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } ); 

我也尝试从路由中删除/ {id}参数,因为我觉得登录屏幕不需要它。

有任何想法吗? 目前,该项目的设置非常简单,使用AccountController中的默认操作方法LogOn等。我唯一做的就是更改global.asax文件中的控制器和操作。

您可能正在使用Visual Studio,并且在执行调试时可能正在主动编辑.cshtml页面。

当您查看代码文件或来自不在启动项目中的项目(即您的EF /模型项目)中的文件时,请尝试启动调试器,并查看是否将调试器启动到正确的URL。

项目属性中可能有一个设置指定启动URL。 如果我找到它,我会找它并编辑这篇文章。

试试这个:转到Project Properties > Web > Start Action

并检查“ Specific Page选项 – 将文本框留空。

我猜你使用cassini(VS.Net中的内置开发Web服务器)? 如果是这样的话,我会一直将这个和接缝作为VS.Net中的一个错误。 切换到IIS 7.5,你不再得到它