每次我运行某个应用程序时,它都会显示一个 找不到错误
有谁知道如何解决这个问题?
我在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
);
我尝试了所有我能想到的东西,但它没有用。
答案 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
没有正确的默认值。答案 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事件上,但是没有调用它。以下是路由配置:
在IIS虚拟目录中也是如此。