我成功地使用了ASP.NET友好URL,但是我需要忽略特定的
看起来使用ASP.NET友好URL会舍弃任何忽略路由的尝试。即使在使用ASP.NET友好URL路由后,MSDN示例忽略路由也不起作用。
Foo.aspx
页面的路由(因为这个页面需要POST数据,一旦重新路由,POST数据在Page_Load()
中就不再可用了!)。看起来使用ASP.NET友好URL会舍弃任何忽略路由的尝试。即使在使用ASP.NET友好URL路由后,MSDN示例忽略路由也不起作用。
routes.Ignore("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
那么要忽略对 Foo.aspx
的路由,代码应该像这样,是吗?
routes.Ignore("{*fooaspx}", new { fooaspx = @"(.*/)?foo.aspx(/.*)?" });
Global.asax
代码如下:
public static void RegisterRoutes(RouteCollection routes) {
// This doesn't work whether I put this code before or after ASP.NET Friendly URLs code.
routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });
routes.Canonicalize().Lowercase();
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
void Application_Start(object sender, EventArgs e) {
RegisterRoutes(RouteTable.Routes);
}
这个问题曾在ASP.NET Friendly URLs codeplex网站上提出, 但没有得到答案。
感谢您的帮助:)