2009-01-28 23 views
6

एन्कोडिंग का तरीका मैं एमवीसी नियंत्रकों में कई प्रकार की कार्रवाइयां बनाता हूं।एएसपी.नेट एमवीसी एचटीएमएल। एक्शनलिंक परिणाम यूआरएल -

public ActionResult DoSmth1(string token) 
public ActionResult DoAnother2(string token) 

और मैं ActionLink कॉल करनी होगी जब ..

=Html.ActionLink<SomeController>(x=> x.DoSmth(item.property), item.property) 
=Html.ActionLink<AnotherController>(x=> x.DoAnother(item.property), item.property) 

... यह मुझे अलग-अलग URL उत्पन्न करता है:

/Some/DoSmth/stringvalue 
/Another/DoAnother?property=stringvalue 

कहाँ जिस तरह से यह एक यूआरएल बनाता है स्थापित करने के लिए? जैसे नियंत्रक, कार्रवाई और आईडी - - - यदि संपत्ति के नाम एक ही है कि स्कीमा मार्ग में इस्तेमाल कर रहे हैं MVC होगा : मैं ALR कोई विचार है हूँ ... ((


ठीक है, एक कुछ waylight मिला हमेशा मार्ग बिल्डर (/ सी/एक/आईडी) का उपयोग

एक छोटे से मदद करता है। (ताकि - नाम संभव के रूप में पैरामीटर "आईडी"))

लेकिन कुल मिलाकर समस्या अभी भी मान्य है ...


वास्तव में मार्ग में टोकन के रूप में एक ही नामित किया जाना चाहिए - मैं पहले कि पता नहीं था।

लेकिन - अब मेरे पास केवल डिफ़ॉल्ट मार्ग ({नियंत्रक}/{action}/{id}) है लेकिन अभी भी स्लैश में "संपत्ति" वाला URL है ... यह बहुत अजीब है।

  • वहाँ भी है एक धोखेबाज़ तरीका है - एक सटीक मार्ग है कि यह साथ एक दिया नियंत्रक से मेल बनाने के लिए पैरामीटर नाम है - कि परम जवाब हो जाएगा लगता है - लेकिन मैं अभी भी इस ((
  • करने के लिए नहीं करना चाहते हैं

उत्तर

4

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

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