2016-06-29 7 views
0

整数入力パラメータを受け取ったり受け取ったりしないASP.NETコアアプリケーションでAPIメソッドを作成しようとしています。私は次のコードを持っていますが、これでエラーが発生します。私は間違って何をしていますか?ここで Web API属性ルーティングでのオプションのINTパラメータ

// GET: api/mycontroller/{id} 
[HttpGet("id:int?")] 
public IActionResult Get(int id = 0) 
{ 
    // Some logic here... 
} 

は私が取得していますエラーです: enter image description here

+0

あなたはどのようなエラーを取得していますか? –

+0

元の投稿にエラーを追加しました。 – Sam

+0

asp.netコアにあまり馴染みがなく、開発者がいません。 '' {id?:int} '''これは、 'id'がオプションで、型が' int'であることを示していると思います。だからあなたは '{'と '}'が不足していて、 '?'は私が知る限り間違った場所にいます。 –

答えて

0

"id:int?" が、それは(文字通り単なる文字列ですが、有効なルートテンプレートではありませんあなたが文字通りあるhttp://server/api/MyController/id:int?見えるように要求URLを期待かのようにのような。不可 はFunnily十分な、それが唯一の理由?文字のためです。あなたはリテラルが(それは無用だにもかかわらず)が許可されることを削除した場合

"{id:int?}"が適切なROがある一方。 UTEテンプレートと正しく動作する、すなわち、URLがそう方法は、このようにする必要があり、デフォルト値に

を与えるであろうhttp://server/api/MyController/42またはhttp://myserver/api/MyController/次のようになります。

// GET: api/mycontroller/{id} 
[HttpGet("{id:int?}")] 
public IActionResult Get(int id = 0) 
{ 
    // Some logic here... 
} 
関連する問題