2009-06-09 18 views
40

मेरे पास एक पृष्ठ /Comments/Search/3 जैसा है जहां मैं थ्रेड "3" की सभी टिप्पणियों को खोज और प्रदर्शित करता हूं।एएसपी.नेट एमवीसी: यूआरएल रूटिंग बनाम क्वेरीस्ट्रिंग

मैं एक प्रकार का फ़ंक्शन जोड़ रहा हूं (दिनांक, लेखक आदि)। इसे संभालने का सबसे अच्छा तरीका क्या है? /Comments/Search/3/Sort/Author या /Comments/Search/3?sort=author?

मैं एमवीसी में पैरामीटर के रूप में क्वेरीस्ट्रिंग सॉर्ट = लेखक को स्वचालित रूप से कैसे प्रबंधित करूं?

धन्यवाद

उत्तर

57

मुझे पसंद है:/टिप्पणियां/खोज/3? Sort = लेखक। क्वेरीस्ट्रिंग प्रोग्रामेटिक पैरामीटर में पास करने के लिए एक अच्छी जगह है, खासकर यदि पैरामीटर (इस मामले में) एसईओ उद्देश्यों के लिए महत्वपूर्ण नहीं है। यदि पैरामीटर में खोज शब्द के रूप में कुछ अर्थपूर्ण अर्थ था, तो पहला यूआरएल बेहतर होगा।

public ActionResult Search(int id, string sort) 

ASP.NET MVC स्वचालित रूप से आपके विधि के मापदंडों को मान querystring ऊपर तार देगा:

एक नियंत्रक विधि में आप कुछ इस तरह उपयोग कर सकते हैं।

उपयोग निम्न मार्ग

routes.MapRoute(
        "Default",            // Route name 
        "{controller}/{action}/{id}",       // URL with parameters 
        new { controller = "Comments", action = "Search", id = "" } // Parameter defaults 
       ); 

/टिप्पणियाँ/खोज/3? प्रकार = लेखक कॉल करेंगे खोजें (3, "लेखक")

/टिप्पणियाँ/खोज/3 कॉल करेंगे खोजें (3 , नल)

ध्यान रखें कि आईडी अनिवार्य तो इस यूआरएल असफल हो जायेगी है: /टिप्पणियाँ/खोज

+0

मुझे लगता है कि मैं इस समाधान के लिए जाना चाहते हैं: यहाँ उस पर एक आसान लेख है। मैं इसे कैसे रूट करूं और डिफ़ॉल्ट सेट कर सकता हूं, क्योंकि सॉर्ट = 3 वैकल्पिक है? – pistacchio

+0

कॉन्फ़िगरेशन पर सम्मेलन के कारण, ध्यान रखें कि आपकी विधि के लिए आपके पैरामीटर को क्रमशः 'आईडी' और 'सॉर्ट' कहा जाना चाहिए। –

+2

एमवीसी 2 में आप UrlParameter का उपयोग कर सकते हैं। वैकल्पिक और क्रिया पैरामीटर में 'int? आईडी int 'के बजाय आईडी' यदि आप इसे वैकल्पिक इनपुट चाहते हैं और खाली इनपुट टेक्स्ट के साथ डिफ़ॉल्ट खोज UI दिखाने के लिए '/ टिप्पणियां/खोज' चाहते हैं। – CallMeLaNN

19

ASP.NET MVC क्वेरी स्ट्रिंग मामले में स्वचालित रूप से उस संभाल लेंगे। आप बस अपनी क्रिया में string sort पैरामीटर जोड़ें।

कौन सा बेहतर है? निजी तौर पर, मैं सामग्री को नियंत्रित करने के लिए पथ का उपयोग करता हूं और प्रस्तुति (यह कैसे प्रदर्शित होता है, प्रारूपित, ...) को नियंत्रित करने के लिए क्वेरीस्ट्रिंग प्रदर्शित होता है। तो, सॉर्ट करने के लिए, मैं क्वेरीस्ट्रिंग विधि के साथ जाऊंगा। लेकिन मुझे नहीं लगता कि किसी भी दृष्टिकोण में तकनीकी नुकसान है।

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