【问题标题】:Monorail parse URL to routing valuesMonorail 解析 URL 到路由值
【发布时间】:2010-03-01 09:53:29
【问题描述】:

是否可以在请求上下文(独立应用程序或测试框架)之外启动 nvelocity 路由机制并从操作中获取 url 并从 url 中获取路由值?

这是一个测试,我需要弄清楚routingMethod:

var url = routingMethod.ResolveAction<MyController>(c=>c.MyAction("Foo",1))
Assert.AreEqual("/MyController/MyAction.rails?name=Foo&amount=1");

var url = "/MyController/MyAction.rails?name=Foo&amount=1";

IDictionary routingValues = routingMethod.DeriveRouteValuesFrom(url);

Assert.AreEqual("MyController", routingValues["controller"]);
Assert.AreEqual("MyAction", routingValues["action"]);
Assert.AreEqual("Foo", routingValues["name"]);
Assert.AreEqual(1, routingValues["amount"]);

【问题讨论】:

    标签: .net url-routing castle-monorail


    【解决方案1】:

    如果我理解正确,您想获取一个 URL,通过路由引擎双向运行它,然后获取路由参数,或者从路由参数创建一个 url?

    您可以创建自己的 RoutingEngine 并将您的路由注册到其中,然后使用 StubRequest 调用它以生成 url 或将 url 解析为参数。

    您也可以(如果您有权访问)直接使用 RoutingModuleEx.Engine。

    RoutingEngine 有两种方法,一种用于匹配,一种用于生成 url。

    还有一个 RouteMatch 类,您可以将其用于测试目的或用于测试 RouteMatch 的任何其他用途,但是,您不能使用它生成 url。

    见本页底部: http://www.castleproject.org/monorail/documentation/v20/advanced/routing.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2010-09-22
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多