所以,我已经在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或服务器。但是,我的自定义路线根本不起作用。我的常规路线工作正常 - 如主页,一些信息页面等。它只是我的自定义路由页面。我做错了什么?
答案 0 :(得分:1)
您是否尝试过切换路线订单,从一开始就更具体?它对我有用。
另请尝试调试器:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx
非常有帮助!