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

本文关键字:操作 控制器 View 启动 URL MVC | 更新日期: 2023-09-27 18:20:25

有时,当我启动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文件中的控制器和操作。

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

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

并选中Specific Page选项—将文本框留空。

您可能正在使用Visual Studio,并且在进行调试时可能正在积极编辑.cs.html页面。

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

项目属性中可能存在指定启动URL的设置。如果我找到了,我会查找并编辑这篇文章。

我猜你在使用cassini(VS.Net中的内置dev web服务器)?如果是这样的话,我一直认为这是VS.Net中的一个bug。切换到IIS 7.5,你就再也得不到它了