0

特定の文字列がメソッド パラメーター (ルート テンプレートの一部として宣言されている) として渡されることを期待するいくつかのコントローラー メソッドを持つ ASP.NET WebApi アプリケーションがあります。

すべてのメソッドで、渡される文字列は base64 でエンコードされています。つまり、各コントローラー メソッドは、何かを行う前に文字列を base64 でデコードする必要があります。もちろん、各メソッドにこれを簡単に実行させることもできますが、文字列が実際にコントローラー メソッドに渡される前にデコードを実行する方法があるかどうか疑問に思っていました。これは、アクション フィルターまたはカスタム フォーマッターに沿ったものだと思いますが、asp.net Web API に精通していないので、どこから始めればよいのでしょうか?

概要: 次のようなルート テンプレートが{controller}/{encodedString}/whatever あり{encodedString}ます。 は常に base64 でエンコードされた文字列です。および次のようなメソッドを持つコントローラー

GetWhatever(string encodedString)
{
  Base64Decode(encodedString);
  // do other stuff...
}

{encodedString}コントローラーメソッドが実際に呼び出される前に、asp.net webapi パイプラインの一部を使用してデコードしたいと思います。これを行うには、どのパスを開始する必要がありますか?

4

1 に答える 1

1

カスタム モデル バインダーを作成し、ModelBinderAttribute. 次に、モデル バインダーで base64 デコードを行います。

Web API チェックでのパラメーター バインディングのリファレンスについては、次を参照してください。

WebAPI がパラメーター バインドを行う方法

于 2012-08-10T08:31:43.753 に答える