3

通常在 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

然后我的处理程序方法接收一个字符串参数:

how/about/this?that=other

在 OpenRasta 中这样的事情可能吗?

在 Sinatra (Ruby) 中,我会使用正则表达式来做到这一点。

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

4

1 回答 1

3

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

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

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

于 2010-04-23T20:01:56.457 回答