2017-05-05 8 views
3

私はdotnetコアでWeb APIプロジェクトを行い、ユーザーの携帯電話番号が存在するかどうかをチェックします。Dotnet core +(プラス)Web APIルーティングにサインイン

[Route("api/[controller]")] 
public class UserController : Controller 
{ 
    [HttpGet] 
    [Route("mobile/exist/{mobile}/{id:int?}")] 
    public async Task<IActionResult> MobileExist(string mobile, int? id) 
    { 
     return Json(await _userService.MobileExist(mobile, id)); 
    } 
} 

リクエストURL:

http://localhost:3364/api/user/mobile/exist/+123456

私はそれが誤り与えられたプラス記号でURL上記のリクエスト。

+記号が付いていない同じURLは正常に動作しています。

私は%2Bでエンコード+記号でみてくださいが、それは私が要求プラス署名することができますどのように

を動作していませんか?

+0

コントローラ用に定義したルートは何ですか?そのコードも表示できますか? –

+0

UserControllerを追加しました。 – Sender

+0

奇妙な - 私のマシンで動作します。 –

答えて

5

これは、IISの問題です:

次のポストを見てください:

double escape sequence inside a url : The request filtering module is configured to deny a request that contains a double escape sequence

あなたはケストレルとあなたのアプリケーションを実行しようとした場合、あなたはそれが動作することを確認できます。 IISの場合、web.configに次のセクションを追加する必要があります。

<system.webServer> 
    <security> 
    <requestFiltering allowDoubleEscaping="true" /> 
    </security> 
</system.webServer> 
+0

はい、動作しています – Sender