ASP.NET路由干扰问题

时间:2011-08-07 18:36:55

标签: asp.net url-routing dynamic-data asp.net-routing

我正在解决ASP .NET路由问题。我不知道这是否是Microsoft代码中的错误,或者我只是错误地使用它。

情景基本上是这样的:

我有一个我想添加的自定义路线。另外,我正在注册ASP .NET DynamicDataRoute。如果我省略自定义路由,那么所有ASP .NET DynamicDataRoute都可以正常工作。我在DynamicDataRoute之前添加此内容:

routes.Add(new Route("IgnoreDirectory/{*pathInfo}"), new StopRoutingHandler()));

DynamicData生成的所有DynamicHyperlinks都是使用错误的根网址生成的,如下所示:

http://localhost/IgnoreDirectory/MyTable/List

应该是(直到我添加自定义路线)

http://localhost/MyDynamicData/MyTable/List

奇怪的是,我正在为完全不同的路径添加我的DynamicDataRoute:

routes.Add(new DynamicDataRoute("MyDynamicData/{{table}}/{{action}}")
                {
                    Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
                    Model = model
                });

为什么要为IgnoreDirectory添加路由,导致我的DynamicData路由使用IgnoreDirectory的基本网址????

我无法理解。

1 个答案:

答案 0 :(得分:2)

我在这里走出困境,但我认为这与两件事情有关。路由存储在RouteTable中的顺序非常重要,因为应用程序将使用first route it finds来匹配URL。

我认为这里可能发生的是DynamicDataRoute正在您在路由表中的DynamicDataRoute之前插入的路径上构建自己。

我要做的第一件事就是在添加DynamicDataRoute后尝试移动Route add。

希望这会有所帮助......