2017-11-24 23 views
6

.NET कोर के लिए नया।नेट कोर वेब एपीआई

मैं क्या गलत कर रहा हूं? यहाँ मैं मैं GET पद्धति में ब्रेकप्वाइंट मारा इस URL

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

साथ एपीआई कॉल करने के लिए कर रहा हूँ मेरी नियंत्रक

[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); 
    } 
} 

है, लेकिन ईद हमेशा शून्य है। मुझे यूआरएल से गुजरने वाले मूल्य को पढ़ने की विधि नहीं मिल सकती है।

कोई सुझाव?

+0

मैक्स पूर्णांक है '2147483647' आपका मान बहुत बड़ा है। 'long' – Nkosi

+0

में बदलें या आईडी के – Antoshjke

उत्तर

5

int MaxValue = 2147483647

आपका मूल्य 8172858817 बहुत बड़ी है।

या तो long

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

संदर्भ के लिए एक छोटे मूल्य या परिवर्तन पैरामीटर का उपयोग Routing in ASP.NET Core : Route Constraint Reference

+0

के लिए ग्विड का उपयोग करें यह काम करता है। अगर मैं विधि का नाम GetCustomerByPhone में बदलता हूं, तो मैं ब्रेकपॉइंट नहीं मारता। मैं जिस नए यूआरएल का उपयोग कर रहा हूं वह http: // localhost: 51375/api/ग्राहक/GetCustomerByPhone/8172858817 है। अगर मैं केवल अपने विधि के नाम के रूप में जीईटी का उपयोग करता हूं, तो मैं ब्रेक पॉइंट हिट करने में सक्षम हूं। ऐसा क्यों? – Coder77

+0

आपको रूट टेम्पलेट अपडेट करना होगा। '[HttpGet (" GetCustomerByPhone/{id}) "'] – Nkosi

+0

यह काम करता है! धन्यवाद – Coder77

संबंधित मुद्दे