2011-08-31 17 views
9

से रूट करने के लिए रीडायरेक्ट करें तो मेरे पास HttpPost केवल ActionResultEdit नामक है। अपनी बात (तर्क आदि) करने के बाद, मैं इसे एक अलग नियंत्रक पर रीडायरेक्ट करना चाहता हूं। आइए HomeController कहें। संदेश यह है:एमवीसी 3 एक्शन रीसल्ट

[HttpPost] 
public ActionResult Edit(Chair chair, string xml) 
{ 
    if (ModelState.IsValid) 
    { 
     try 
     { 
      _repository.EditChair(chair, xml); 
      return RedirectToRoute(new { contoller = "Home", action = "index"}); 
     } 
     catch (Exception ex) 
     { 
      //error msg for failed edit in XML file 
      ModelState.AddModelError("", "Error editing record. " + ex.Message); 
     } 
    } 
    return View(Chair); 

} 

Ive, return RedirectResult(), RedirectToAction() की तरह अन्य बातों के tryed RedirectToRoute("string") - लेकिन यह अभी भी नियंत्रक Edit विधि (ChairController) में है से सूचकांक दृश्य लौटने रहता है।

यह करने का सही तरीका क्या है ??

+1

यहाँ कुछ इसी तरह है पहले से ही ... [कैसे RedirectToRoute इस्तेमाल किया जा माना जाता है?] [1] आशा है कि यह मदद करता है ... [1]: http: // stackoverflow। कॉम/प्रश्न/12 9 0355/कैसे-रीडायरेक्टोरो-आउट-टू-प्रयुक्त –

+0

@ जेन धन्यवाद। ऐसा लगता है कि पोस्ट में उस लड़के के लिए काम कर रहा है, लेकिन मेरे लिए नहीं: एस एफएमएल –

+1

@ कैस्पर अनुमान है कि मैंने आपके प्रश्न को गलत समझा। मैंने सोचा था कि आपने कहा था कि उसी क्रिया पर रिटर्न –

उत्तर

5

वाह wierdest बात कभी भी इस का कारण बना। कोड सही था (जैसा कि मुझे शुरू करना था)। मैंने इसे एक बार फिर डीबग करने का प्रयास किया, और देखा कि जैसे ही मैं कोड के माध्यम से गया था, कि डीबगर चीज़ो ने केवल कुछ कोड को चिह्नित किया: return RedirectToAction("Index", यह वास्तव में वहां रुक गया, और "Home"); से नहीं निकला। मैंने यह भी देखा कि मेरा ब्रेकपॉइंट वास्तव में पीला था, और मुझे स्रोत कोड के बारे में कुछ बता रहा था मूल के समान नहीं था? क्या हुआ यह कह रहा था कि सैकड़ों बचाता है, पुनरारंभ होता है, बनाता है और पुनर्निर्माण करता है। नीले रंग से यह कोड स्वीकार कर लिया, मेरा ब्रेकपॉइंट लाल हो गया, कोड ठीक काम किया।

वास्तव में अपने समय के लोगों को कम करने के लिए खेद है!

+1

आप शायद अपने विकास सर्वर को पुनरारंभ करना भूल गए :-P –

18

टाइपो:

contoller = "Home" 

controller = "Home" 

या होना चाहिए:

return RedirectToAction("index", "home"); 
+1

वूप्स। विफल टाइपो। लेकिन हाँ, जैसा कि मेरे प्रश्न में बताया गया है, पहले से ही RedirectToAction() का प्रयास किया है। काम नहीं करता –

+1

@ कैस्पर स्कोव, जब तक कि आपने अपनी रूट परिभाषाओं के साथ कुछ गड़बड़ नहीं की है 'रिटर्न रीडायरेक्ट टॉएक्शन ("इंडेक्स", "होम");' पूरी तरह से ठीक काम करता है। –

+0

हेहे मुझे पता है। इसकी एफ * सीकेड अप। मेरा अपना जवाब देखें। अपने समय साथी को कम करने के लिए खेद है। –

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