2009-04-07 15 views
7

मैं फ्रेमवर्क में उपयोग करने के लिए पहली परियोजना के रूप में एएसपी.नेट एमवीसी में क्लोन जैसे TinyURL लिखने का प्रयास कर रहा हूं।TinyURL एएसपी.नेट एमवीसी के साथ रूटिंग की तरह?

यूआरएल मार्ग अभी भी मेरे लिए एक छोटे से भ्रामक है, खासकर जब मैं नियंत्रक/कार्रवाई/आईडी से विचलित।

आप में से किसी ASP.NET MVC निंजा मुझे सेटअप आसान URL मार्ग कैसे TinyURL.com अपने मार्गों को संसाधित करता है के लिए इसी तरह की मदद कर सकते हैं?

उदाहरण के लिए:

www.tinyurl.com/

सूचकांक पृष्ठ पर रीडायरेक्ट। इसलिए, यदि कोई पैरामीटर पारित नहीं होता है, तो बस इंडेक्स() दृश्य को कॉल करें।

हालांकि, अगर आप अपने tinyurl हैश में पारित, मैं रिडायरेक्ट() कॉल कार्रवाई की जरूरत है।

www.tinyurl.com/fbc13

तो, कैसे मैं इस कस्टम मार्ग की स्थापना के बारे जाना चाहते हैं?

routes.MapRoute( 
       "Default",        // Route name 
       "{tinyhash}",       // URL with parameters 
       new { controller = "Link", action = "ReDirect", tinyhash = "" } // Parameter defaults 
      ); 

इसका कारण यह है अगर आप सिर्फ यूआरएल में कोई हैश के साथ पृष्ठ पर जाएँ, बिल्कुल सही नहीं है, मुझे मिल गया है कि यह रीडायरेक्ट के दोषी() कार्रवाई जब मैं यह बजाय, सूचकांक कॉल करना चाहते हैं() तरीका। कैसे मार्ग की तरह एक बुनियादी TinyURL की नकल करने के लिए

सुझाव?

उत्तर

12

आप सही रास्ते पर हैं। एक खाली मार्ग बनाएं और आपको रीडायरेक्ट नहीं किया जाएगा।

routes.MapRoute( 
    "Default", 
    "", 
    new { controller = "Home", action = "Index" } 
); 

और अपने डिफ़ॉल्ट एक

routes.MapRoute( 
    "Redirect", 
    "{tinyhash}", 
    new { controller = "Link", action = "ReDirect", tinyhash = "" } 
); 

को बदलने के वैकल्पिक रूप से आप सिर्फ नियंत्रक tinyhash मूल्य की जाँच करें और एक अलग दृष्टिकोण दिखाई देगा यदि यह रिक्त है हो सकता था। (वह हैकी है)

+0

@ बेनरिक, एक टन धन्यवाद! – KingNestor

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