2017-11-24 18 views
6

.NETコアの新機能。.Net Core Web API

私は間違っていますか?ここで私は私がGETメソッドにブレークポイントをヒットこのURL

http://localhost:51375/api/customer/8172858817

でAPIを呼び出すことができる午前私のコントローラ

[Route("api/[controller]")] 
public class customerController : Controller 
{ 
    // GET: api/values 
    //[HttpGet] 
    //public IEnumerable<string> Get() 
    //{ 
    // return new string[] { "value1", "value2" }; 
    //} 

    // GET api/values/5 
    [HttpGet("{id}")] 
    public customer Get(int id) 
    { 
     var repo = new customerRepository(); 
     return repo.GetCustomerOnPhone(id); 
    } 
} 

ですが、Idは常にゼロです。私はURLから渡されている値を読み取るメソッドを取得できません。

提案がありますか?

+0

リファレンスRouting in ASP.NET Core : Route Constraint Referencelong

[HttpGet("{id:long}")] public IActionResult Get(long id) { var repo = new customerRepository(); customer model = repo.GetCustomerOnPhone(id); return Ok(model); } 

に小さい値または変更パラメータを使用して最大intはあなたの値が大きすぎる2147483647' 'です。 'long 'に変更してください – Nkosi

+0

またはGuidをIDの – Antoshjke

答えて

5

int MaxValue = 2147483647

あなたの価値8172858817が大きすぎます。

どちらか

+0

に使用してください。メソッド名をGetCustomerByPhoneに変更すると、ブレークポイントにヒットしません。私が使用している新しいURLはhttp:// localhost:51375/api/customer/GetCustomerByPhone/8172858817です。メソッド名としてGETだけを使用すると、ブレークポイントに到達することができます。なぜそうなのか? – Coder77

+0

ルートテンプレートを更新する必要があります。 '[HttpGet(" GetCustomerByPhone/{id}) "'] – Nkosi

+0

それは動作します!ありがとう – Coder77

関連する問題