我在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
),以防止每次页面请求加载和丢弃它?
答案 0 :(得分:1)
您的路线充当了无所不包。在这种情况下,您需要在全能路线之前提供特定路线,以便为这些特定路线提供适当的响应。换句话说,唯一应该通过您的catch-all的路由是必须重定向到Pages / ViewResort.aspx的路由。