2016-12-20 10 views
0

IはWEBAPIアクションメソッドへのルートPARAMとしてURIを渡す必要がありますWebApi2 - URIセグメント/コントローラのアクションパラメータとしてURIをURLエンコード

http://some.url/api/controller/method/%2FforeignRoute%2F7e12cd15-d49d-4b16-9fe5-94b5f3ea3ecd%2Fhello%2Fworld%2FsomeResourceId

..属性ルートにマップします定義:

Route("api/controller/method/{theuri}")

..しかし、最後のセグメントが常にデコードされ且つasp.net/webapiが404

を返します10

これは問題だとは思わないが、おそらく私は間違った木を吠えているだろうか?

答えて

0

%2FのURLエンコードされた値は、フォワードは/スラッシュされるので、あなたのURIは

http://some.url/api/controller/method//foreignRoute/7e12cd15-d49d-4b16-9fe5-94b5f3ea3ecd/hello/world/someResourceId 
            ^^ 

ダブルスラッシュは、ここで問題を作成しているになります。これは利用できず、404を取得する必要があります。

Route("api/controller/method{theuri}") 
+0

私はこれが問題ではないと誤解しています。また、パラメータがエンコードされないようにするべきです。また、webapiはエンコードされているかどうかにかかわらず、 '/ method /'の後にあるすべてを '{theuri} 'として見なければなりません。少なくとも、それは欲望です。 – JoeBrockhaus

関連する問題