我有一个webforms 4项目,我使用url路由Webforms 4 url路由多个匹配
在某些情况下,给定的路线可以匹配多个模式。
似乎路由机制以特定顺序尝试每个模式,并停止在第一个匹配。 (纠正我,如果我错了)。如果所选模式的资源(主要是一个aspx文件)不存在,我们有一个404错误(资源不存在)。
下一个匹配模式映射到现有资源,但该机制不会尝试。
实施例(使用类似于对MVC命名约定)
routes.MapPageRoute("Action", "{controler}/{action}/{*pathInfo}", "~/Views/{controler}/{action}.aspx");
routes.MapPageRoute("Overview", "{controler}/{*pathInfo}", "~/Views/{controler}/Overview.aspx");
因此,有一个/Views/Patient/Overview.aspx和/Views/Patient/Search.aspx的文件系统上。
路线“/患者”将匹配所述第二图案和映射到“/Views/Patient/Overview.aspx”
路线“/患者/搜索”将匹配第一图案映射到“/Views/Patient/Search.aspx”
路线“/人/搜索/ SomePathInfo”将匹配第一图案和映射到“/查看/人/海rch.aspx “(治疗” SomePathInfo”的URL的一部分的{*} panthinfo一部分)
现在,问题是,路线 “/患者/ SomePathInfo” 两个图案相匹配。第一个将“SomePathInfo”视为{action}部分(搜索不存在的“/Views/Patient/SomePathInfo.aspx”)。第二个将“SomePathInfo”视为{* pathInfo}部分,并映射到现有的“/Views/Patient/Overview.aspx”。
该机制虽然尝试第一个,但它找不到SomePathInfo.aspx文件,并引发404错误。
我的问题是“有没有办法来引导机制,以尝试每个模式,直到它找到一个现有的资源(或者,更一般的,直到某些条件得到满足?[点击这里:resource.exists] “!