2010-01-08 10 views
7

मैं एक मार्ग पर रीडायरेक्ट करना चाहता हूं लेकिन उस रूट के नियंत्रक पर चलाने के लिए भी कार्रवाई निर्दिष्ट करना चाहता हूं।Response.RedirectToRoute निर्दिष्ट कार्रवाई के साथ

मैं इस कोशिश की:

Response.RedirectToRoute("Login", new { action = "ChangePassword" }); 

कार्रवाई इस तरह दिखता है:

public ActionResult ChangePassword() 
{} 

मार्ग इस तरह दिखता है:

routes.MapRoute("Login", "Login/{action}", new { controller = "Login", 
action = "Index" }); 

त्रुटि मैं मिलता है:

सिस्टम। नोट कार्यान्वित अपवाद: विधि या संचालन लागू नहीं किया गया है।

क्या आप देख सकते हैं कि मैं क्या गलत कर रहा हूं?

+2

किया यह एक MVC3 में [बग] (http://blog.slaks.net/2011/11/beware-of-responseredirecttoroute-in.html) है। @ ajay_whiz के समाधान ने मेरे लिए काम किया। सी में MVCApp.Controllers.LoginController.TryFormsLogin (स्ट्रिंग उपयोगकर्ता नाम, स्ट्रिंग पासवर्ड) पर System.Web.HttpResponseBase.RedirectToRoute (स्ट्रिंग routeName, वस्तु routeValues) पर : – booyaa

उत्तर

0

ठीक है, आपको केवल NotImplementedException मिलता है जब कुछ इसे फेंकता है। तो स्टैक ट्रेस (कॉल स्टैक) देखें और उस दिनचर्या को ढूंढें जो इसे फेंक देता है। जब वीएस स्वचालित रूप से एक इंटरफ़ेस लागू करता है, उदाहरण के लिए, शरीर इसे फेंक देगा; आप कार्यान्वयन को बदलने की उम्मीद कर रहे हैं।

+0

इस ढेर के शीर्ष है \ देव \ AspenMVCTemplate \ एसआरसी \ मुख्य \ MVCApp \ MVCApp \ नियंत्रक \ LoginController.cs: लाइन 110 –

+0

तो आईई रीडायरेक्ट टॉउटआउट अपवाद को सही तरीके से फेंक रहा है? –

+0

नहीं, 'RedirectToRoute' इसे फेंक नहीं देगा। लेकिन जिस चीज को 'रीडायरेक्ट टॉर रूट' अंततः * कहा जाता है * कहता है (कहें, आपके एक्शन द्वारा बुलाया गया फ़ंक्शन) बस हो सकता है। किसी भी 'इनरएक्सप्शन' पर आपके पास हो सकता है कि किसी स्टैक को देखने का प्रयास करें। –

9

मुझे भी इसके साथ कठिन समय था। मैं इस

Response.Redirect(Url.RouteUrl(new{ controller="controller", action="action"})); 
+1

इस विधि तक पहुंचने के लिए कोई भी तरीका नियंत्रक में नहीं है? – Shimmy

+0

@Shimmy आप इसे कहाँ से एक्सेस करना चाहते हैं? –

+0

'Application_Error'। यह एक नया उदाहरण बनाने के लिए स्पष्ट रूप से संभव है, सवाल है कि एक स्थिर उदाहरण कहीं भी मौजूद है। – Shimmy

-2
return Redirect(Url.RouteUrl(new { controller = "Controller", action = "Action" })); 
+2

यह उत्तर [इस] (http://stackoverflow.com/a/5975320/75500) एक का सही डुप्लिकेट है, जिसे पहले पोस्ट किया गया था। – Shimmy

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