2012-09-01 15 views
11

के लिए कोई कार्रवाई नहीं मिली यह एक असली सिर-स्क्रैडर है।वेबएपी नियंत्रक नियंत्रक

namespace ControlTower.Controllers 
{ 
    public class AirlinesController : ApiController 
    { 
     private static IEnumerable<Airline> MapAirlines() 
     { 
      return (Jetstream.AirlineObject.GetAirlines()).Select(x => x); 
     } 

     [HttpGet] 
     public IEnumerable<Airline> GetAirlines() 
     { 
      return MapAirlines().AsEnumerable(); 
     } 

     [HttpGet] 
     public Airline GetAirlineByCode(string code) 
     { 
      return Jetstream.AirlineObject.GetAirline(code); 
     } 
    } 
} 

और: - -: मैं दो ApiControllers जो मैं एक JSON वेब सेवा के रूप में उपयोग कर रहा हूँ बनाया है

namespace ControlTower.Controllers 
{ 
    public class ReviewsController : ApiController 
    { 
     private static IEnumerable<Review> MapReviews(int airline) 
     { 
      return (Jetstream.ReviewObject.GetReviews(airline)).Select(x => x); 
     } 

     [HttpGet] 
     public IEnumerable<Review> GetReviews(int airline) 
     { 
      return MapReviews(airline).AsEnumerable(); 
     } 

     [HttpGet] 
     public Review GetReviewById(int review) 
     { 
      return Jetstream.ReviewObject.GetReview(review); 
     } 
    } 
} 

इस मार्ग के साथ: -

config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/get/{code}", 
       defaults: new { code = RouteParameter.Optional } 
      ); 

और जबकि /api/airline/get/ba या /api/airline/get/ का दौरा पूरी तरह से काम करता है, की किसी भी विविधता पर जाकर समीक्षा नहीं करता है। क्या कोई वास्तव में कुछ भी स्पष्ट देख सकता है मैं यहाँ याद कर रहा हूँ?

सहायता की सराहना की जाती है।

+2

क्या आप सटीक यूआरएल पोस्ट कर रहे हैं जो आप उपयोग कर रहे हैं और त्रुटि संदेश और स्टैकट्रैक यदि कोई है तो? मान लीजिए: आप एक एयरलाइन या समीक्षा में नहीं भेज रहे हैं और 'int' मूल्य प्रकार है, इसका मूल्य होना चाहिए। उन्हें 'int?' – nemesv

+0

में बदलें मैंने निम्नलिखित यूआरआई की कोशिश की है: '/ api/reviews/get/ba','/api/reviews/get/','/api/reviews/get/1' ... I हमेशा एक ही आउटपुट प्राप्त करें: - '{ $ आईडी:" 1 ", संदेश:" कोई HTTP संसाधन नहीं मिला जो अनुरोध यूआरआई से मेल खाता है http: // localhost: 88/ControlTower/api/reviews/get/1 '। ", संदेश विवरण:" नियंत्रक' समीक्षा 'पर कोई कार्रवाई नहीं मिली जो अनुरोध से मेल खाता है। " } ' – dooburt

उत्तर

18

आपका डिफ़ॉल्ट मार्ग "कोड" नामक पैरामीटर की अपेक्षा कर रहा है। आपको या तो एयरलाइन और/या समीक्षा नामक पैरामीटर को स्वीकार करने के लिए रूट जोड़ने की आवश्यकता है, या नियंत्रक को पैरामीटर का नाम स्पष्ट रूप से बताएं।

पूर्व।/एपीआई/समीक्षा/प्राप्त करें? एयरलाइन = 1

+0

बहुत धन्यवाद जेसन;) – dooburt

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