अनुरोध डेटा खोए बिना एएसपी.नेट एमवीसी में रीडायरेक्ट करने के लिए कैसे करें

एएसपी.नेट एमवीसी का उपयोग करने में स्थितियां हैं (जैसे फॉर्म सबमिशन) जिन्हें RedirectToAction की आवश्यकता हो सकती है।

ऐसी एक स्थिति तब होती है जब आपको फ़ॉर्म सबमिशन के बाद सत्यापन त्रुटियों का सामना करना पड़ता है और उसे फॉर्म पर रीडायरेक्ट करने की आवश्यकता होती है, लेकिन यूआरएल फॉर्म के यूआरएल को प्रतिबिंबित करना चाहती है, न कि वह एक्शन पेज जो इसे सबमिट करता है।

चूंकि मुझे मूल रूप से POST ed डेटा, उपयोगकर्ता सुविधा के साथ-साथ सत्यापन उद्देश्यों के लिए फ़ॉर्म की आवश्यकता होती है, तो मैं RedirectToAction() के माध्यम से डेटा कैसे पास कर सकता हूं? अगर मैं viewData पैरामीटर का उपयोग करता हूं, तो मेरा POST पैरामीटर GET पैरामीटर में बदल दिया जाएगा।

0
जोड़ा संपादित
विचारों: 6
यदि कोई त्रुटि है तो आप एक ही दृश्य को वापस क्यों नहीं कर रहे हैं? यदि मॉडल मान्य है तो रीडायरेक्ट टॉक्शन आमतौर पर कहा जाता है - या क्या मुझे कुछ याद आ रहा है ?!
जोड़ा लेखक niico, स्रोत
यहां एक प्रश्न है जो समान है (उसी विषय पर), लेकिन इससे अलग है। वैसे भी, यह अभी भी इस प्रश्न में रूचि रखने वालों के लिए रूचि रख सकता है: http://stackoverflow.com/questions/129335/how-do-you-redirec‌ ttoaction का इस्तेमाल करने वाली पोस्ट और जेडडब्ल्यूएनजे; -intead के- प्राप्त
जोड़ा लेखक Chris Pietschmann, स्रोत

1 उत्तर

समाधान वांछित अनुरोध घटकों को संग्रहीत करने के लिए TempData प्रॉपर्टी का उपयोग करना है।

उदाहरण के लिए:

public ActionResult Send()
{
    TempData["form"] = Request.Form;
    return this.RedirectToAction(a => a.Form());
}

फिर अपने "फॉर्म" एक्शन में आप जा सकते हैं:

public ActionResult Form()
{
    /* Declare viewData etc. */

    if (TempData["form"] != null)
    {
        /* Cast TempData["form"] to 
        System.Collections.Specialized.NameValueCollection 
        and use it */
    }

    return View("Form", viewData);
}
0
जोड़ा