【问题标题】:Track last view with C# ASP.NET MVC使用 C# ASP.NET MVC 跟踪最后一个视图
【发布时间】:2014-01-10 01:29:30
【问题描述】:

我没有要显示的代码,因为我不确定如何处理这个问题。我将用户从一个视图发送到另一个视图,我们将在其中进行 CRUD 操作,我需要有一种方法知道我在 CRUD 操作之前到达的最后一个视图,以便我可以将我的用户发送回该视图。一旦有人登录,我还想使用它进行重定向。我想有一种方法来设置我希望他们返回的视图,以便他们可以从网站上的任何页面登录,它会记住页面,而不仅仅是将您放在主页上。

我也会接受一个很好的教程,我很想弄清楚这一点。我应该只使用 ViewBag 吗?

【问题讨论】:

    标签: asp.net-mvc-4 visual-studio-2012 asp.net-mvc-5 viewbag


    【解决方案1】:

    如果您通过 Html Helper 制作<a></a>,那么您可以在函数中全局设置查询字符串,以便稍后用于了解最后一次查看用户访问。

    正如 Balachandra 所说,您可以在 Request 对象中使用 ReturnUrl

    其他一些可以帮助你的想法是

    Request.Server["HTTP_REFERER"] 
    Request.UrlReferrer
    

    另一个解决这个问题的简单算法是让 JavaScript cookie 知道什么是当前 url。和最后一个网址。在 cookie 中只需要记住 2 个 url。

    当您想知道最后一个推荐人时,您可以轻松查看用户 cookie 以了解推荐人。

    如果你想知道 Action 内部的 url refffer,那么创建一个 ActionFilter 并调用这段代码

    HttpContext.Current.Request.UrlReferrer.ToString()
    

    在 ASP.NET MVC 中,我们有用于将数据从视图传递到视图的 TempData。从这个帖子http://www.rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications你可以得到更好的解释。

    这足以将数据从视图传递到视图。例如 TempData 将帮助您存储当前 url,并且您可以在下一个视图中获得相同的信息。请记住,TempData 是基于 Session 的,因此它不会长时间存储信息。对我来说,TempData 看起来是您需要用于自己的解决方案的完美解决方案。

    【讨论】:

      【解决方案2】:

      如果您启用 asp.net mvc 身份验证并尝试浏览应用程序中的任何页面,它会将用户重定向到带有“ReturnUrl”查询字符串参数的登录页面。此参数保存用户重定向的上一页的名称。

      即使在登录后也可以使用类似的方法。

      【讨论】:

      • 如果我运行我的 mvc4 项目并导航到产品页面,然后单击作为 Web 应用程序标准身份验证的标准登录名的登录按钮,它会将我送回主页/索引完成登录后的页面。不是产品页面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2019-06-28
      相关资源
      最近更新 更多