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

S9D*_*gns 7 c# asp.net-mvc controller asp.net-mvc-routing

有时当我启动我的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 } 
        );
Run Code Online (Sandbox Code Playgroud)

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

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

cod*_*ger 14

试试这个:去Project Properties> Web>Start Action

并选中该Specific Page选项 - 将文本框留空.


joe*_*ish 3

您可能正在使用 Visual Studio,并且在点击调试时可能正在积极编辑 .cshtml 页面。

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

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