Asp.Net Routing: How do I ignore multiple wildcard routes?我想忽略多个通配符路由。 使用asp.net mvc预览4,它们附带:
我还想添加如下内容:
但这似乎破坏了一些在我的程序中生成url的助手。 有什么想法吗? 这里有两种可能的解决方案。 向忽略路由添加约束,以确保仅应忽略的请求将与该路由匹配。有点麻烦,但应该可以。
您的内容目录中有什么?默认情况下,"路由"不路由磁盘上存在的文件(实际上会检查VirtualPathProvider)。因此,如果要将静态内容放入Content目录中,则可能不需要忽略路由。 这可能非常棘手。 当试图找出如何将路线数据映射到路线时,系统当前从上至下搜索,直到找到可以提供所有必需信息的地方,然后将其他所有内容填充到查询参数中。 由于始终完全满足路线" Content / {* pathInfo}"的必需信息(此路线中根本没有必需的数据),并且该信息位于路线列表的顶部附近,因此所有尝试映射到未命名路线的尝试都将匹配此模式,您所有的URL都将基于此(" Content?action = foo&controller = bar") 不幸的是,行动路线无法解决这一问题。如果您使用命名路由(例如,选择Html.RouteLink而不是Html.ActionLink),则可以指定要匹配的路由的名称。它不太方便,但更精确。 国际海事组织,复杂的路线使行动路由系统基本上崩溃了。在应用程序中,除了默认路由以外,我几乎总是返回到基于命名路由的URL生成,以确保始终获得正确的路由。 |