【原文地址】:
【原文发表时间】: Mar 13, 2008
在Mix会议上,演示了一个简单的route测试程序(route tester),我很快的把他们整理出来了。
这个工具会显示当前地址栏中请求地址里存在的Route数据内容(页面里的Route Data)。因此你可以在地址栏中输入各种Urls来观察它匹配了哪一个路径。在页面底部,显示了你的程序中所有被定义的route列表。它可以让你看到当前的URL匹配哪个你定义的route。
这个工具的用处在于,有时候你希望的匹配路径却被其他的路径定义所代替。它可以向你展示出发生了这种情况。但是,这个工具并没有提供任何关于为什么发生这种情况的信息。希望我们以后能做更多的事情来改善这个。
要使用这个工具,只要下载这个,然后把dll文件放到你的程序的Bin目录里,再在Global.asax.cs文件的Appliation_Start函数里添加一行代码(黑体字的)。
protected void Application_Start(object sender, EventArgs e)
{ RegisterRoutes(RouteTable.Routes); RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);}它会使用DebugRouteHandler来更新那些你的应用中所有的route处理程序(IRouteHandler),这些route处理程序原本是为了处理程序中每个不同的route特别定义的。它在最后添加了一个catch-all route,以确保这个调试器总能匹配对这个应用程序的所有请求。
我也会发布(使用“所有”听起来有很多代码,其实代码不太多)它包含了一个使用这个route tester 的demo程序。这个东西对你是否有用,请告诉我一声。