How to pass tempdata in RedirectToAction in ASP.Net MVC

Viewed 4951

I need to pass one logout successful message in one of the views but I am not able to do so. Here is what I have.

Not Working Solution:

 //LogController:
  public ActionResult Logoff()
  {
      DoLogOff();
      TempData["Message"] = "Success";
      return RedirectToAction("Index", "Home");
  }

  // HomeController
  public ActionResult Index()
  {
      return View();
  }

Index CSHTML File:

@Html.Partial("../Home/DisplayPreview")

DisplayPreview CSHTML File:

   @TempData["Message"] 

Working Solution

public ActionResult Logoff()
{
     DoLogOff();
     return RedirectToAction("Index", "Home", new { message = "Logout Successful!" });
}

public ActionResult Index(string message)
{
    if (!string.IsNullOrEmpty(message))
        TempData["Message"] = message;
    return View();
}

Index CSHTML File:

   @TempData["Message"] 

But I want something like my first solution.

4 Answers

hi i want to share my version

    public ActionResult List(string success,string error)
    {
            TempData["success"] = success;
            TempData["error"] = error;

      return View();
    }
     
    
    public ActionResult Add()
    {
     return RedirectToAction("List",new
       {
         error = "not added",
         success = "added"
       });
    }
Related