मेरे मास्टरपेज में एक लॉगिन बॉक्स है। जब भी लॉगिन जानकारी सही नहीं होती है, तो मैं उपयोगकर्ता को त्रुटि संदेश दिखाने के लिए ViewData["loginError"]
का मूल्यांकन करता हूं।एएसपी.नेट एमवीसी: रिटर्न रीडायरेक्ट और व्यूडाटा
लॉगिन उपयोगकर्ता नियंत्रक की एक क्रिया है, इसलिए लॉग इन वाले फॉर्म में action = "/User/Login"
है।
एक उपयोगकर्ता किसी भी पेज से लॉग इन करने का प्रयास कर सकता है, सफलता के मामले में मैं उसे अपने व्यक्तिगत पृष्ठ पर रीडायरेक्ट करता हूं, लेकिन त्रुटि के मामले में मैं चाहता हूं कि वह उसी पृष्ठ पर रहें जहां उसने लॉगिन करने का प्रयास किया था। मैं पाया है कि इस काम करता है:
return Redirect(Request.UrlReferrer.ToString());
लेकिन ऐसा लगता है कि, जैसा कि मैंने एक उचित दृश्य वापस नहीं कर रहा हूँ, ViewData पर डेटा खो दिया है, तो मैं त्रुटि संदेश नहीं दिखा सकते हैं।
इस और इसी तरह की समस्याओं को हल करने के तरीके पर कोई सुझाव?
धन्यवाद
+1 बस मैं क्या सोच रहा था। MvcContrib में आसान कार्रवाई फ़िल्टर का एक सेट भी है जो मॉडलस्टेट को टेम्पपेस्टेट से और उसके लिए प्रतिलिपि बनाता है ताकि आपके पास रीडायरेक्ट के बाद सत्यापन जानकारी उपलब्ध हो। उदाहरण के लिए इस आलेख में आइटम 13 देखें http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx –
याद रखें TempData सत्र का उपयोग करता है हालांकि राज्य - सभी प्रभावों के साथ। – UpTheCreek