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

この機能を RC ブランチに追加するパッチが trac にあります。

これらの変更を RC2 として今週末プッシュするので、ワイルドカード構文を取得できます。

/{name:*} のようになることに注意してください。

于 2010-04-23T20:01:56.457 に答える