ASP.NET MVC में रूटलिंक और एक्शनलिंक के बीच क्या अंतर है?


120

मुझे लगता है कि यह शीर्षक बहुत अधिक है:

बीच क्या अंतर है RouteLink()औरActionLink()ASP.NET MVC में ?

अर्थात आप कब उपयोग करते हैं Html.RouteLink()और कब Html.ActionLink()अपने दृश्य में उपयोग करते हैं ?

जवाबों:


78

क्रिया और मार्गों का 1: 1 संबंध नहीं है।

एक्शनलिंक URL को एक्शन नाम से पहले मिलान मार्ग का उपयोग करके एक्शन में लाने के लिए जनरेट करेगा।

रूटलिंक एक विशेष मार्ग को नाम या मार्ग मूल्यों द्वारा निर्धारित URL उत्पन्न करेगा।


एक महान ब्लॉग पोस्ट के लिए +1। वास्तव में काम करते हैं। और दिखाता है कि अभी बहुत संभावनाएं हैं। एमएस लोगों को केवल सबसे तेज़ लागू करना चाहिए। लेकिन लोग फैंसी लैम्बडा का उपयोग सबसे धीमी गति से करते हैं।
रॉबर्ट कोरिटनिक

हे धन्यवाद, लेकिन मुझे लगता है कि लिंक टूटी हुई नहीं है। pls आप मुझे फिर से लिंक प्रदान करेंगे धन्यवाद
user1006544

5
क्या हमें उदाहरण मिल सकते हैं?
MaylorTaylor 3

67

दरअसल, दो तरीकों से आउटपुट समान है, लेकिन यह थोड़ा अलग तरीकों से उत्पन्न होता है:

Html.ActionLink()ActionLinks को तेजी से जनरेट करना आसान बनाता है, और आपको जो प्रदान किया गया है, उस पर आपको मूल नियंत्रण देगा। यदि आपके पास बहुत अधिक मार्ग नहीं हैं, या आपको बहुत अधिक या बहुत विशिष्ट जानकारी देने की आवश्यकता नहीं है, तो यह ठीक काम करेगा।

Html.RouteLink()विधि थोड़ा अलग तर्क लेता है, और इस तरह आप जिस तरह से चीजें नियंत्रित किया जाता है से अधिक एक छोटे और अधिक विस्तृत नियंत्रण देता है। मैं इस पद्धति का उपयोग तब करता हूं जब मेरा परिदृश्य थोड़ा अधिक जटिल होता है, या जब मेरे पास अधिक विस्तृत मार्ग संरचना होती है।
एक उदाहरण एक हालिया परियोजना है जहां मैंने (लचीलेपन के लिए) कई अलग-अलग मार्ग थे, जो सभी काफी सरल थे, एक जटिल एक की तुलना में जो बहुत सारी जानकारी के लिए अनुमति देगा। इस प्रकार, मैं एक ही नियंत्रक के लिए चार या पाँच मार्गों के साथ समाप्त हो गया, सभी एक डिफ़ॉल्ट कार्रवाई निर्दिष्ट के साथ। मैंने ज्यादातर इस्तेमाल कियाRouteLink संस्करण का , क्योंकि जब मैंने एक मार्ग का नाम निर्दिष्ट किया, तो डिफ़ॉल्ट पैरामीटर स्वचालित रूप से दर्ज किए गए थे।

जैसा आप चाहते हैं, उनका उपयोग करें और जैसा कि वे आपके प्रोजेक्ट के लिए समझ में आते हैं। उनमें से किसी के लिए वास्तव में कोई उल्टा / नकारात्मक नहीं है (जो किसी और से मेल नहीं खाता है ...)।


19

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


1
सिमोन चियारेटा ने यहां कुछ प्रदर्शन विश्लेषण किया: codeclimber.net.nz/archive/2009/04/17/…
दिमित्री

12

रूटलिंक एक मार्ग का नाम लेता है, इसलिए यदि आपके मार्ग के नाम विश्वसनीय और काफी विशिष्ट हैं तो यह वही होगा, भले ही कार्रवाई का नाम बदल दिया जाए। इसके बजाय किसी विशिष्ट नियंत्रक की विशिष्ट कार्रवाई के लिए एक्शन लिंक लिंक करें। मैं अपने विचारों में दोनों का उपयोग करता हूं, इस बात पर निर्भर करता है कि मैं किस तरह के लिंक के बाद हूं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.