当我点击另一个动作的后退箭头时,Tempdata没有被清除?

时间:2017-04-06 07:50:34

标签: javascript c# asp.net asp.net-mvc tempdata

我希望在添加用户时显示警告消息。它发生得很顺利,但是当我从另一个动作按下浏览器的后退箭头时,它仍会显示警告信息。

//this is my partial view
<div class="row" id="alerts">
<div class="col-lg-12">
    @if (TempData["Success"] != null)
    {
        <div class="alert alert-success alert-dismissable">
            <button type="button" class="close" data-dismiss="alert" aria-
hidden="true">x</button>
            <h4><i class="icon fa fa-ban"></i> Alert!</h4>
            @TempData["Success"]
        </div>

    }
</div>
</div>

//this is my controller
 public ActionResult Add(CreateViewModel objCreate)
    {
        userRepo.AddUser( objCreate);

        TempData["Success"] = "User Added Successfully!";
        return RedirectToAction("Index");    
    }

//this is my view
<div class="col-md-10 col-md-offset-2">
            @Html.Partial("_Alerts")
            @RenderBody()
 </div>

2 个答案:

答案 0 :(得分:0)

在Index方法中,您可以使用{/ 1}}这样的注释来禁用缓存

OutputCacheAttribute

答案 1 :(得分:0)

我认为原因是当你回到浏览器时,它会调用TempData["Success"]的控制器和存储值

使用控制器中的以下代码尝试此操作

public ActionResult Add(CreateViewModel objCreate)
{
   if (!IsPostBack){
      userRepo.AddUser( objCreate);
      TempData["Success"] = "User Added Successfully!";
   }
   return RedirectToAction("Index"); 
}