我正在使用Predicate Builder
来允许用户过滤数据库表并搜索他们在我的应用程序中需要/想要的特定记录。
现在,在合并paging
和Predicate Builder
时,我必须将用户的搜索存储在Session
中,以便在搜索特定记录和搜索时返回的记录多于1页可以容纳的记录..然后他们将能够转到第2页并且仍然拥有与其查询匹配的记录。
现在,为了让他们搜索其他记录,他们将不得不清除该会话并开始一个新的...所以在我的 Index 页面上,用户可以搜索我创建了一个按钮,可以单击以清除其会话:
<input type="button" class="btn btn-primary top-margin" value="Clear Search" onclick="location.href='@Url.Action("ClearSearch", "DailySummaries", new { area = "" })'" />
在我的控制器中,这很简单:
public ActionResult ClearSearch()
{
Session.Clear();
return RedirectToAction("allDailySummaries");
}
但问题是..当用户点击该按钮时,它会将它们返回到初始页面。如何清除会话而不将其重定向回初始页面?
为了更好地解释..想象我在2016年4月1日到2016年12月4日期间搜索了所有每日摘要。现在我完成了那次搜索,我想搜索其他内容......我点击了“清除搜索”#39;按钮,但我想要它做的是清除会话并保持在当前所在的页面上..不清除会话,然后将我重定向回初始页面。
感谢任何帮助。
答案 0 :(得分:0)
如果不了解更多实施细节,很难说。就个人而言,当我不得不解决这样的问题时,我倾向于回复我们的好朋友javascript。
基本上,我要遵循的过程是:
你也应该考虑非javascript用户的优雅降级,在这种情况下,重定向可能是正确的方法。