在asp.net-mvc中找不到错误

时间:2010-12-24 11:47:57

标签: asp.net asp.net-mvc

每次我运行某个应用程序时,它都会显示一个 找不到错误alt text

有谁知道如何解决这个问题?

我在default.aspx.cs文件中的page_load事件上放置了一个调试器,但它没有被调用。

以下是路由配置:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // parameters
            new { controller = "Home", action = "Index", id = "" }  // Parametedefaults
        );

我尝试了所有我能想到的东西,但它没有用。

6 个答案:

答案 0 :(得分:0)

你在VS Dev / Cassini上运行什么Web服务器? IIS? 查看根文件夹中是否有default.aspx。您需要一个虚拟根default.aspx,以便MVC能够与某些Web服务器一起正常工作。

答案 1 :(得分:0)

如果您使用的是IIS 6,则在使用没有扩展名的网址时,您需要使用通配符映射到aspnet isapi过滤器。还有其他选项,例如使用虚假扩展名,例如mvc和映射到那。默认情况下,IIS 6不知道将没有扩展名的页面视为asp.net

史蒂夫桑德森提供了一篇关于部署到IIS 6(http://blog.stevensanderson.com/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/)的优秀文章。

当然,如果您使用的是IIS7,那么它应该只是开箱即用。在那种情况下,我不知道。

答案 2 :(得分:0)

如果你所有的东西都在他们的位置,那么它似乎是:

  • 路由配置错误。很可能您的Controller/Action没有正确的默认值。
  • 您使用的是较旧的IIS版本,但未正确配置。有关说明,请参阅this

答案 3 :(得分:0)

尝试检查Default.aspx代码,如下所示:

using System.Web;
using System.Web.Mvc;
using System.Web.UI;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, System.EventArgs e)
    {
        HttpContext.Current.RewritePath(Request.ApplicationPath, false);
        IHttpHandler httpHandler = new MvcHttpHandler();
        httpHandler.ProcessRequest(HttpContext.Current);
    }
}

您需要配置iis的通配符映射,如下所示: http://weblogs.asp.net/scottgu/archive/2007/03/04/tip-trick-integrating-asp-net-security-with-classic-asp-and-non-asp-net-urls.aspx

答案 4 :(得分:0)

从外观上看,您没有设置默认路线。试试这个:

Routes.MapRoute("Site (*)", "{action}", new {
    controller = "Site",
    action = "Default"
});

这基本上设置了一个根路由,如果没有传入任何内容,则默认操作为“默认”。这也会映射到所有根路由,例如/Home/Contact/{Whatever}

答案 5 :(得分:0)

根据相关评论 我将调试器放在default.aspx.cs文件中的page_load事件上,但是没有调用它。以下是路由配置:

  • 您是否尝试将default.aspx设置为项目的StartUp Page。

在IIS虚拟目录中也是如此。