使用MVC 2启动ASP.Net应用程序时出现HTTP 404错误

时间:2011-09-16 15:30:43

标签: asp.net-mvc asp.net-mvc-2

我在尝试使用非常简单的ASP.Net应用程序开始使用.Net Framework 4和MVC 2时遇到了问题。

在Visual Studio 2010中按F5时,我收到以下错误消息HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时无法使用。请查看以下网址,确保拼写正确。

当我添加视图时,我通过右键单击控制器中的方法添加了视图,这当然添加了视图。我还注意到,当选择“转到视图”时,这也会在Visual Studio中引发错误,并说该视图不存在!此外,我已经转到Global.asax页面并将默认控制器更改为我添加的控制器,但这没有任何区别。

所以,请告诉我 - 但我需要改变吗?

3 个答案:

答案 0 :(得分:2)

尝试转到/ControllerName/ActionName。如果您更改了默认值,则必须确保拼写正确。另请注意,ASP.NET MVC Framework删除了控制器名称的“Controller”后缀。

如果您的新控制器被称为MyNewController,它应该:

  1. 继承自Controller
  2. 被称为MyNewController
  3. 喜欢这个

    public MyNewController : Controller {
        public ActionsResult MyAction() {
           return View();
        }
    }
    

    在本案例的Global.asax.cs中,默认设置为:

    routes.MapRoute(
        "Default", 
        "{controller}/{action}/{id}", 
        new { controller = "MyNew", action = "MyAction" }
    );
    

    请注意默认控制器设置缺少“Controller”后缀。

答案 1 :(得分:0)

要安装MVC,需要考虑一些注意事项。 我想你正试图在IIS 5或6上安装它

请阅读这篇文章 http://blog.stevensanderson.com/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/ 或升级到IIS 7

答案 2 :(得分:0)

有类似的问题。我错误地修改了默认路线:

url: "{controller}/{action}/{id}",

对此:

url: "{controller}/{action}/{id*}",

将星号放在错误的位置会导致每个URL都给我一个404 - 而且通常ASP.Net路径几乎不可能调试。

解决方案是将星号放在适当的位置:

url: "{controller}/{action}/{*id}",

(这允许路由包含任意数量的正斜杠,而不是将它们限制为3.带星号的部分是一个捕获。)