在我的应用程序中,我将对象存储到会话中,该会话被传递给Web服务以返回数据以显示在表中。如果会话存在,则它不会要求用户输入新的数据。但是,如果用户选择一个名为“新列表”的链接,则会话数据将被清除,并且用户提示输入新数据。c#mvc:RedirectToAction()和浏览器导航按钮
在我的代码,我已经定义了以下这样一个锚:
<a href="@Url.Action("NewList", "Alert")"> New List</a>
将触发此控制器操作:
public ActionResult NewList()
{
Session["new_list"] = "y";
return RedirectToAction("List");
}
然后继续执行这个动作:
public ActionResult List()
{
if ((string)Session["new_list"] == "y")
{
//clear session variables, load fresh data from API
}else{
//display blank table. Ask user to input data to retrieve a list
}
....
}
现在,我遇到的问题是当用户导航离开列表页面,然后导航回wi th浏览器的后退按钮,它仍然呼吁newlist
。在浏览器的历史中,不是存储List
,而是存储newlist
,这导致会话变量清除。我能做些什么来阻止这种情况的发生,或者是否有其他机制可以在c#mvc中使用,这可以帮助我实现预期的效果。
把它放入cookie中。 – CodingYoshi