当站点位于IIS子文件夹中时,MVC2自定义路由中断

时间:2012-01-24 23:11:46

标签: asp.net-mvc-2 windows-server-2008 iis-7.5 asp.net-mvc-routing

所以,我已经在mysite中实现了自定义路由。

routes.MapRoute(
    "WithFriendlyNameOnly",
    "{friendlyName}",
    new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "WithFriendlyNameDefault",
    "{friendlyName}/{controller}",
    new { controller = "Home", action = "Index", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "WithFriendlyName",
    "{friendlyName}/{controller}/{action}/{id}",
    new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "DefaultWithRule", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { controller = new MustNotRequireFriendlyName() }
);

这在本地工作正常。我使用友好名称来确定您在站点网站中的上下文。没有它,我给你的只是一个404页面。

我的测试环境是Windows 2008 Server(IIS 7.5),我的应用程序位于以下子文件夹中:test.mydomain.com/mysite。一切正常,直到我做了这个新的自定义URL,所以我很确定它不是IIS或服务器。但是,我的自定义路线根本不起作用。我的常规路线工作正常 - 如主页,一些信息页面等。它只是我的自定义路由页面。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您是否尝试过切换路线订单,从一开始就更具体?它对我有用。

另请尝试调试器:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx

非常有帮助!