2012-12-04 10 views
10

क्या वेबपी परियोजना के नियंत्रक फ़ोल्डर में उप फ़ोल्डर्स जोड़ने का कोई तरीका है?नियंत्रक फ़ोल्डर में उप फ़ोल्डर्स जोड़ना - .net webapi

मैं कुछ ऐसा सोच रहा हूं जैसे नियंत्रक/ग्राहक ग्राहक मॉड्यूल के लिए नियंत्रक शामिल हैं।

+0

में फ़ोल्डर है कि मैं क्या चाहता हूँ URL में उप फ़ोल्डर का नाम है। i.e: lolcalhost/weApp/{foldername}/{controller} – mangun

उत्तर

5

नियंत्रक इस तरह से काम नहीं करते हैं। Asp.NET में आपकी फ़ोल्डर संरचना आपकी वेबसाइट संरचना है। वेब एपीआई में, नियंत्रकों को संरचना के स्वतंत्र रूप से देखा जाता है। वास्तव में, आप उन्हें विभिन्न असेंबली में रख सकते हैं और वे अभी भी ढांचे द्वारा पाए जाएंगे। रूटिंग आपके द्वारा अपेक्षित तरीके से काम नहीं करेगी। आप एक मार्ग जोड़ सकते हैं जहां आपके पास "फ़ोल्डर का नाम" है, जैसा आपने कहा था, localhost/WebApp/{foldername}/{controller}। केवल {foldername} सादा, स्थिर फ़ोल्डर नाम (localhost/WebApp/foldername/{controller}) हो सकता है। इसलिए ग्राहक को यूआरएल को "फ़ोल्डनेम" के साथ कॉल करना होगा, लेकिन कोड का स्थान कोई फर्क नहीं पड़ता क्योंकि एमवीसी फ्रेमवर्क नियंत्रकों के तहत फ़ोल्डर पेड़ को अलग नहीं करता है।

2

मैं अपने स्वयं के लिए इस समस्या को हल करने के लिए क्या करता हूं, एक और मैप्रूट जोड़ रहा है और नियंत्रक से पहले नामस्थान जोड़ रहा है। बस दो अंक के बारे में पता होना:

  1. आपका नया भगदड़ डिफ़ॉल्ट से पहले किया जाना चाहिए एक
  2. आप डिफ़ॉल्ट एक

    routes.MapRoute(
         name: "Secretariat", 
         url: "{namespace}/{controller}/{action}/{id}", 
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        ); 
    
0

जवाब यहां गलत हैं के लिए नाम स्थान नहीं जोड़ सकते । आप आसानी से ऐसा कर सकते हैं। तुम बस फिर अपने नियंत्रक वर्ग पर मार्ग निर्दिष्ट करना होगा:

स्थित /Controllers/Authentication

//An example of you specifying a diff. route than the folder path 
[Route("api/login")] 
public class LoginController {...} 
+1

मुझे लगता है कि यहां आपके उदाहरण में, यह '[रूटफ्रिक्स (" एपीआई/लॉगिन ")] 'और' [रूट (...)]' होना चाहिए। '[मार्ग (...)] 'विशेषता' LoginController' कक्षा के अंदर व्यक्तिगत कार्रवाइयों पर जाएगी। – Jiveman

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