2015-04-14 9 views
19

मेरे पास कुछ मूल रूटिंग के साथ एक मूल वेब एपीआई 2 सेटअप है।वेब एपीआई 2 पोस्ट - UrlHelper.Link को वापस नहीं लौटना चाहिए

नीचे डिफ़ॉल्ट मार्ग और सम्मिलन के लिए पोस्ट है।

ExceptionMessage:: जब मैं पद रिकॉर्ड डेटाबेस में पूरी तरह से बनाया जाता है लेकिन "CreatedAtRoute" कॉल एक 500 त्रुटि बताते हुए रिटर्न कहते हैं "। UrlHelper.Link अशक्त वापस नहीं आना चाहिए" अपवाद टाइप: "सिस्टम। इन्वाइडऑपरेशन अपवाद"

मुझे यह त्रुटि क्यों प्राप्त होगी?

[RoutePrefix("api/casenotes")] 
    public class CasenoteController : ApiController... 



// POST api/Casenote 
[Route("")] 
[ResponseType(typeof(client_admission_casenote))] 
    public async Task<IHttpActionResult> Postclient_admission_casenote (client_admission_casenote client_admission_casenote) 
{ 

    Request.GetRequestContext().IncludeErrorDetail = true; 

    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 

    db.client_admission_casenote.Add(client_admission_casenote); 
    await db.SaveChangesAsync(); 

    return CreatedAtRoute("DefaultApi", new { id = client_admission_casenote.casenote_id }, client_admission_casenote); 
    } 

उत्तर

34

आप विशेषता मार्ग .. आप अपने मार्ग नाम के लिए है के बाद से उपयोग कर रहे हैं .. यानी [रूट ("API/पुस्तकों/{आईडी}", नाम = "GetBookById")]

और उपयोग अपने url.link() पर मार्ग नाम फोन

यहाँ विवरण देखने के .. http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-names

+0

धन्यवाद Ronnel, इस जानकारी से चाल करना चाहिए लेकिन मैं अभी भी त्रुटि मिलती है। // एपीआई/केसिनोट/5 [मार्ग ("{casenoteId}/detail", नाम = "GetSingleCasenote")] [प्रतिक्रिया प्रकार (टाइपऑफ (client_admission_casenote))] और फिर पोस्ट में नाम का उपयोग करें: वापसी निर्मितएट्रोउट ("GetSingleCasenote ", नया {id = client_admission_casenote.casenote_id}, client_admission_casenote); } –

+1

आह, ऐसा इसलिए है क्योंकि मैंने डिफ़ॉल्ट "आईडी" मान को "casenoteId" में बदल दिया है। मुझे इसमें बदलना पड़ा: MadeAtRoute ("GetSingleCasenote", नया {casenoteId = client_admission_casenote.casenote_id}, client_admission_casenote); } बहुत धन्यवाद रोनेल !!! –

+0

मुझे खुशी है कि आपने इसे काम किया है। – Ronnel

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