2012-02-19 21 views
33

मैं एमवीसी 4 बीटा में नए वीपी एपीआई के साथ झुका रहा हूं और अपने मौजूदा एमवीसी साइट पर कुछ नए एपीआई नियंत्रक जोड़ रहा हूं। समस्या यह है कि मैं अपने मौजूदा नियंत्रकों के समान वेब एपीआई नियंत्रकों का नाम नहीं दे सकता। अभी के लिए मैंने उन्हें ProductApiController जैसे नाम दिए हैं लेकिन यह बहुत ही कम नहीं है। मौजूदा एमवीसी साइट पर जोड़ने के दौरान इन नए नियंत्रकों के नामकरण के लिए एक अच्छी रणनीति क्या है?मिक्स वेब एपीआई नियंत्रक और साइट नियंत्रक

उत्तर

53

समस्या यह है कि मैं अपने मौजूदा नियंत्रकों के समान वेब एपीआई नियंत्रकों का नाम नहीं दे सकता।

आपके पास अपने मौजूदा नियंत्रकों के समान नाम के साथ आपके एपीआई नियंत्रक हो सकते हैं। कंपाइलर को खुश करने के लिए बस उन्हें एक अलग नामस्थान में रखें।

उदाहरण:

namespace MyAppName.Controllers 
{ 
    public class ProductsController: Controller 
    { 
     public ActionResult Index() 
     { 
      var products = productsRepository.GetProducts(); 
      return View(products); 
     } 
    } 
} 

और एपीआई नियंत्रक:

namespace MyAppName.Controllers.Api 
{ 
    public class ProductsController: ApiController 
    { 
     public IEnumerable<Product> Get() 
     { 
      return productsRepository.GetProducts(); 
     } 
    } 
} 

और उसके बाद आपके पास: /products और /api/products क्रमशः के साथ काम करने के लिए।

+0

तो फिर मैं नियंत्रक फ़ोल्डर में एक एपीआई सबफ़ोल्डर जोड़ सकता हूं और वहां एपीआई नियंत्रक जोड़ सकता हूं? – terjetyl

+0

@ टीटी।, हाँ, यह एक संभावना है। –

+2

या शायद वेब एपीआई के लिए एक क्षेत्र अधिक उपयुक्त है? – terjetyl

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