2017-12-27 29 views
1

私はapi/products /を呼び出すたびに、単純な製品コントローラクラスを作成しようとしています。見つけた、私は何を間違っている。スラッシュは、パスのルートを参照するのでパラメータを使用してルートを取得できません

namespace api.Controllers 
{ 

    [Route("api/[controller]")] 
    public class productsController : Controller 
    { 




     // get record 
     [HttpGet("/{id:int}")] 
     public IActionResult GetRecord(int id) 
     { 
      return Ok("get record" + id.ToString()); 
     } 


     // get records 
     [HttpGet("/")] 
     [HttpGet("")] 
     public IActionResult ListRecords() 
     { 
      return Ok("list records"); 
     } 



    }  
} 

答えて

6

[HttpGet("/{id:int}")] 

を使用しないでください。代わりに使用する

[HttpGet("{id:int}")] 
+0

なぜ、?はRESTFulに準拠していませんか? –

+1

与えられたパスがスラッシュで始まる場合、ルーティングはそれをコントローラアクションの絶対パスとして扱います。スラッシュがなければ、コントロールのURLは自動的にルートに追加されます。 – NineBerry

関連する問題