MapPageRoute()与站点的根目录重复加载目标资源

时间:2012-10-12 17:29:41

标签: c# asp.net routes global-asax

我在Global.asax.cs中有以下一行:

routes.MapPageRoute( "Resorts", "{resortname}", "~/Pages/ViewResort.aspx" );

目的是允许以下请求:

www.mysite.com/some-resort-name

加载此资源(或多或少)

www.mysite.com/Pages/ViewResort.aspx?resortname=some-resort-name

此行为正常。但是,我注意到ViewResort.aspx每次时都会加载任何资源请求,大概是因为我的路由不包含文字路径段,就像这样的替代方案:

routes.MapPageRoute( "Resorts", "Resort/{resortname}", "~/Pages/ViewResort.aspx" );

我的客户坚持认为,在URL中的主机名之后唯一的东西是度假村名称,因此不可能使用备用路由。

所以我的问题是:当RouteUrl引用网站的根目录时,是否需要做一些特殊的事情?如果失败了,是否有一个特定的模式可以在目标页面上实现(在这种情况下为ViewResort.aspx),以防止每次页面请求加载和丢弃它?

1 个答案:

答案 0 :(得分:1)

您的路线充当了无所不包。在这种情况下,您需要在全能路线之前提供特定路线,以便为这些特定路线提供适当的响应。换句话说,唯一应该通过您的catch-all的路由是必须重定向到Pages / ViewResort.aspx的路由。

Alden,Sr http://projects.nathanalden.com/JuniorRoute