【问题标题】:Go back to a search page without losing search criteria在不丢失搜索条件的情况下返回搜索页面
【发布时间】:2011-07-29 19:50:56
【问题描述】:

我需要一些帮助来解决这个问题。它是关于 ASP.NET MVC3 的。我有一个页面,顶部有一些搜索条件,底部有结果数据。用户可以键入一些标准并使用提交按钮来检索数据。在我的控制器中,我有一个 ActionResult 函数来管理这些条件并返回到填充了 ViewModel 类的同一页面。

问题:用户可以单击结果表中的一行来查看详细信息页面。在详细信息页面上,他可以导航到编辑页面以编辑数据。在此页面(编辑数据)上,我希望用户能够返回搜索结果页面(实际上:导航两次)。最好的方法是什么?如果我“简单地”使用 ActionLink(不发布数据)到我的搜索结果页面,它只会显示一个带有空搜索条件的空结果页面。也许我需要将搜索条件保存在会话变量中?我不喜欢这种东西……

我们将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc-3


    【解决方案1】:

    为什么不把数据放在Session,就像你说的那样?

    public ActionResult Search(string searchCriteria)
    {
        Session["searchCriteria"] = searchCriteria;
        // do more stuff     
    }
    

    这样,无论用户进行多少“后点击”,您都可以使用搜索条件。

    你可以让它变得更复杂,但我认为在这种情况下没有必要。如果您想在操作链接中将其作为路由数据传递,您必须防御性地将searchCriteria 参数添加到用户可能从搜索页面导航到的页面的每个 ActionLink。在我看来,这让它变得更加麻烦。

    足够好有时也足够好。稍后根据需要重构。 :)

    【讨论】:

    • 嗨,Sergi,感谢您抽出宝贵时间。我使用了会话变量。有用。在我的详细信息页面上,我使用了一个操作链接返回到我的搜索结果。我问这个问题是因为我是 ASP.NET MVC 的初学者,有时我害怕犯错误。无论如何,谢谢你,祝你有美好的一天。
    • @Bronzato - 不客气。欢迎来到 StackOverflow。如果它对您有所帮助,请不要忘记将此答案标记为正确的答案。您可以通过单击答案左侧的白色刻度线来完成此操作。
    • 如果用户希望能够在不同的选项卡中打开两个不同的搜索结果,那么使用 Session 将无法正常工作。
    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 2014-04-04
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多