0

をGETするために二重のパラメータを渡す: ウェブAPI - 私は、次の方法持っている方法

GET /v1/api/request/GetEditorialRequestsByCoordinates/48/2 

...私が呼ぶとき、それが正常に動作します

[Route("GetEditorialRequestsByCoordinates/{lat:min(-90):max(90)}/{lng:min(-180):max(180)}")] 
[AutomapperExceptionApiFilterAttribute] 
public HttpResponseMessage GetEditorialRequestsByCoordinates(double lat, double lng) 
{ 

} 

をしかし、私はこのように二重の値を渡したいです:

GET /v1/api/request/GetEditorialRequestsByCoordinates/48.999/2.777 

エラーが発生しました(404が見つかりません)。ルートによって適切な方法を見つけることができないようです。 私は道でルートを設定しようとしています

[Route("GetEditorialRequestsByCoordinates/{lat:double:min(-90):max(90)}/{lng:double:min(-180):max(180)}")] 

...しかし、それはどちらか動作しません。

どうすれば修正できますか?

答えて

5

URLの末尾に/を追加するだけで解決しました。ルーティングエンジンが入力パラメータではなく2.777のファイル拡張子として見ているようです。あなたがリンクを生成するために、組み込みのヘルパーを使用したときに自動的にURLの最後に末尾にスラッシュを追加するカスタムルートを登録できるように

さらに、それが見えます。

最も簡単な解決策は、RouteCollectionに次の行を追加することです。あなたは属性でそれを行うが、あなたのRouteConfigでしまう方法がわからない、あなただけのこれを追加します。詳細については

routes.AppendTrailingSlash = true; 

hereをご確認ください。

全ての最大値と最小値関数の最後には、整数

最大の作品:最大値を整数にマッチします。 {X:最大(10)}

私はそれが二重のために動作しませんと思います。

+0

問題の半分は解決されますが、範囲制限では機能しません。私はもう一つ質問を作成しました:http://stackoverflow.com/questions/36119037/webapi-min-max-double-for-routeattribute –

関連する問題