2009-07-01 11 views
58

asp.net MVC के में, मैं इस कोड का उपयोग कर रहा हूँ:RedirectToAction विधि के साथ क्वेरीस्ट्रिंग मानों को कैसे जोड़ना है?

RedirectToAction("myActionName"); 

मैं चाहता हूँ क्वेरी स्ट्रिंग के माध्यम से कुछ मान पारित करने के लिए, मुझे लगता है कि कैसे करते हो?

उत्तर

117

कि पारित कर रहे हैं कोई भी मान उस मार्ग का हिस्सा नहीं हैं क्वेरी स्ट्रिंग पैरामीटर के रूप में उपयोग किया जाएगा:

return this.RedirectToAction 
    ("myActionName", new { value1 = "queryStringValue1" }); 

वापसी होगी:

/controller/myActionName?value1=queryStringValue1 

कोई मार्ग पैरामीटर "मान 1" नाम है यह मानते हुए ।

+0

सहमत हैं, लेकिन "value1" नाम के साथ क्रिया पैरामीटर मौजूद हो सकता है। क्यों नहीं? –

+2

मुझे लगता है कि जवाब का मतलब है "मानते हैं कि 'value1' नामक कोई रूट पैरामीटर नहीं है"। अन्यथा जेनरेट किए गए यूआरएल में मार्ग पैरामीटर के स्थान पर मूल्य जाएगा, उदा। {नियंत्रक}/{action}/{value1} बन जाएगा/नियंत्रक/myActionName/queryStringValue1/नियंत्रक/myActionName के बजाय? value1 = queryStringValue1। – Levi

+0

लेवी सही है। मैंने जो जवाब दिया है उसे स्पष्ट करने के लिए मैंने जवाब तय कर दिया है। – Talljoe

3

टी 4 एमवीसी का उपयोग करने पर भी विचार करें, जिसमें विस्तार विधियां AddRouteValue() और AddRouteValues() (here देखें)।

1

मुझे वही गलती न करें जो मैं कर रहा था। मैं 404 त्रुटियों को संभालने वाला था और क्वेरीस्ट्रिंग में 404=filename के साथ रीडायरेक्ट करना चाहता था, यानी mysite.com?404=nonExistentFile.txt

क्वेरीरींग कुंजी संख्याओं से शुरू नहीं हो सकती है। 404 से FileNotFound में बदलकर मेरी समस्या हल हो गई, यानी mysite.com?FileNotFound=nonExistentFile.txt

+0

यह [आमतौर पर सच नहीं है] (https://stackoverflow.com/a/12465767/264628)। यह विशेष रूप से .NET MVC (कम से कम v5 में) के लिए भी सही नहीं है। बस याद रखें कि चाबियाँ स्ट्रिंग्स हैं भले ही इसमें केवल अंक होते हैं। आप निम्नानुसार एक संख्यात्मक कुंजी का उपयोग करेंगे: 'HttpContext.Request.QueryString ["404"] '। – BrianS

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