在OpenRasta中,如何配置一个URI,我将“路径的其余部分”作为单个字符串?

时间:2010-04-23 15:22:01

标签: openrasta

通常在OpenRasta中有一些这样的配置:

ResourceSpace.Has.ResourcesOfType<Customers>()
    .AtUri("/customers/region/{region}")
    ... // and so on

...其中路径的{region}部分自动映射到处理方法中的字符串参数。因此,如果用户点击:

http://server/customers/region/emea

然后处理程序方法传递字符串“emea”。

除了这样做之外,我还想用这样的方式注册一个处理程序:

ResourceSpace.Has.ResourcesOfType<Customers>()
    .AtUri("/someotherthing/*")
    ... // and so on

在这个假想的语法中,星号意味着“将剩下的路径(包括斜杠)作为单个字符串参数传递给处理方法”。因此,如果用户点击:

http://server/someotherthing/how/about/this?that=other

然后我的handler方法接收一个字符串参数:

how/about/this?that=other

OpenRasta中是否可以这样做?

在Sinatra(Ruby)中,我使用正则表达式来完成这个。

更新:到目前为止,我的猜测是一个自定义管道,它以某种方式来掩盖斜线......

1 个答案:

答案 0 :(得分:3)

在trac上有一个补丁,可以将此功能添加到RC分支。

本周末我将推动这些更改作为RC2,因此您将获得通配符语法。

请注意,它看起来像/ {name:*}