有时当我启动我的MVC 3项目时,它会尝试为正在呈现的视图加载完全限定的URL,而不是控制器中的操作(这会给我404错误)。其他时候它工作正常,实际上按照预期的方式击中控制器动作,但它大约是50/50。
有时会点击的网址是: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文件中的控制器和操作。
答案 0 :(得分:14)
试试这个:转到Project Properties
> Web
> Start Action
然后检查Specific Page
选项 - 将文本框留空。
答案 1 :(得分:3)
您可能正在使用Visual Studio,并且在调试时可能正在主动编辑.cshtml页面。
当您查看代码文件或来自不在启动项目中的项目(即您的EF /模型项目)中的文件时,请尝试启动调试器,并查看是否将调试器启动到正确的URL
项目属性中可能有一个设置指定启动URL。如果我找到它,我会找它并编辑这篇文章。
答案 2 :(得分:1)
我猜你使用cassini(VS.Net中的内置开发Web服务器)?如果是这样的话,我会一直把它变成VS.Net中的一个错误。切换到IIS 7.5,你不再得到它