जवाबों:
जब आप पुनर्निर्देशन का उपयोग करते हैं, तो आप उपयोग नहीं करेंगे ViewBag
, लेकिनTempData
public ActionResult Action1 () {
TempData["shortMessage"] = "MyMessage";
return RedirectToAction("Action2");
}
public ActionResult Action2 () {
//now I can populate my ViewBag (if I want to) with the TempData["shortMessage"] content
ViewBag.Message = TempData["shortMessage"].ToString();
return View();
}
आप इस स्थिति में TempData का उपयोग कर सकते हैं। यहाँ ViewBag, ViewData और TempData के लिए कुछ स्पष्टीकरण दिया गया है।
मुझे यह पसंद आया..और इसके लिए मेरे लिए काम कर रहा हूं ... यहां मैं पासवर्ड बदल रहा हूं और सफलता पर मैं सफलता के संदेश को सेट करने के लिए व्यूबैग पर प्रदर्शित करना चाहता हूं ...
public ActionResult ChangePass()
{
ChangePassword CP = new ChangePassword();
if (TempData["status"] != null)
{
ViewBag.Status = "Success";
TempData.Remove("status");
}
return View(CP);
}
[HttpPost]
public ActionResult ChangePass(ChangePassword obj)
{
if (ModelState.IsValid)
{
int pid = Session.GetDataFromSession<int>("ssnPersonnelID");
PersonnelMaster PM = db.PersonnelMasters.SingleOrDefault(x => x.PersonnelID == pid);
PM.Password = obj.NewPassword;
PM.Mdate = DateTime.Now;
db.SaveChanges();
TempData["status"] = "Success";
return RedirectToAction("ChangePass");
}
return View(obj);
}
सारांश
ViewData और ViewBag ऑब्जेक्ट्स आपको डेटा के उन अतिरिक्त टुकड़ों को एक्सेस करने के तरीके देते हैं जो आपके मॉडल के साथ-साथ चलते हैं, हालांकि अधिक जटिल डेटा के लिए, आप ViewModel तक जा सकते हैं। दूसरी ओर, TempData को HTTP रीडायरेक्ट पर डेटा के साथ काम करने के लिए विशेष रूप से तैयार किया गया है, इसलिए TempData का उपयोग करते समय सतर्क रहना याद रखें।
या आप विकल्प के लिए सत्र का उपयोग कर सकते हैं:
Session["message"] = "MyMessage";
RedirectToAction("MyAction");
और जब भी जरूरत हो तब उसे कॉल करें।
अपडेट करें
इसके अलावा, जैसा कि @James ने अपनी टिप्पणी में कहा है, अवांछित जंक डेटा या पुराने मूल्य से बचने के लिए इसका उपयोग करने के बाद उस विशिष्ट सत्र के मूल्य को शून्य या स्पष्ट करना सुरक्षित होगा।