2011-07-02 14 views
7

में दिखाई नहीं देगा यह सिर्फ एक उदाहरण है जिसे मैं समझ नहीं सकता कि इसे कैसे प्राप्त किया जाए।एमवीसी 3 कंट्रोलर फ़ोल्डर यूआरएल

मेरे एमवीसी 3 नियंत्रक फ़ोल्डर में, यदि मैं "व्यवस्थापक" नामक एक नया फ़ोल्डर जोड़ता हूं और एक क्रिया "इंडेक्स" के साथ एक नियंत्रक "समाचार" जोड़ता हूं, तो आप उस यूआरएल को खोलने का प्रयास करते समय सर्वर त्रुटि प्राप्त करते हैं (404):

http://url/Admin/News

यहां तक ​​कि आप टाइप "/ सूचकांक" इसके पीछे, यह काम नहीं करेगा जब। आप पदानुक्रम कैसे बना सकते हैं जिसके परिणामस्वरूप समान यूआरएल होगा? बस स्पष्ट होना, मैं यूआरएल की तरह बनाना चाहते हैं:

http://url/folder1/folder2/controller/action

धन्यवाद

उत्तर

16

आप "भौतिक फ़ाइल पथ" अभी भी की मानसिकता में सोच रहे होंगे लगते हैं। .NET एमवीसी रूटिंग की अवधारणा का उपयोग करता है जहां आप उन मार्गों को परिभाषित करते हैं जो नियंत्रक वर्गों और कार्यों को मैप करते हैं। सादे शब्दों में, आप किसी फ़ाइल में मैपिंग नहीं कर रहे हैं, आप कक्षा में मैपिंग कर रहे हैं।

यदि आप अपनी वेब प्रोजेक्ट की global.asax फ़ाइल देखते हैं तो आपको RegisterRoutes() नामक एक विधि दिखाई देगी। यह विधि आपकी साइट के सभी उपलब्ध मार्गों को तार देती है जिसका उपयोग निष्पादित करने के लिए सही नियंत्रक/क्रिया/पैरामीटर/पैटर्न खोजने के लिए किया जाएगा।

अब, जिस तरह से मैं आपको ढूंढ रहा हूं उसे हल करने की सलाह दूंगा जो एक क्षेत्र बनाकर होगा। ऐसा लगता है कि आप तो मैं निम्न कार्य था अपनी वेबसाइट के लिए एक प्रशासनिक खंड करना चाहते हैं:

अपनी वेबसाइट परियोजना पर राइट क्लिक करें, चयन "जोड़ें", चुनें "क्षेत्र"

enter image description here

अपने क्षेत्र को एक नाम दें, इस मामले में "व्यवस्थापक"

आपको समाधान एक्सप्लोरर अब "क्षेत्र" व्यवस्थापक जोड़ देगा। ध्यान दें कि यह मानक प्रोजेक्ट की संरचना और लेआउट की नकल कैसे करता है, केवल अपने ही फ़ोल्डर में।

enter image description here

नव निर्मित प्रशासनिक क्षेत्र में एक नियंत्रक जोड़ें और इसे नाम "समाचार" अपने कार्यों

यहाँ जोड़ें परीक्षा परिणाम URL ऐसा कर रहा है:

enter image description here

यह समाधान सादगी के लिए है। यदि आप आगे लेना चाहते हैं तो आपको ऊपर के बारे में बात की गई RegisterRoutes() विधि में अपने मार्ग बनाने में डील करना होगा। रूटिंग कुछ ऐसा है जो आपको ठोस समझ हासिल करनी चाहिए, इसलिए मैं ऐसा करने की सलाह देता हूं।

+0

कोई बेहतर उत्तर नहीं मिला। आपके सुप्रसिद्ध उत्तर के लिए बहुत बहुत धन्यवाद! – user825887

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