【问题标题】:Simulate a javascript history.back using razor使用 razor 模拟 javascript history.back
【发布时间】:2012-11-27 18:55:07
【问题描述】:

我有这样的javascript代码:

<a href="javascript:window.history.back()"...

当我在浏览器中测试我的网站(使用 HTML5、MVC4)时,它运行良好。但是当我使用嵌入式浏览器在 Android/iPhone 应用程序中运行它时,我的反向链接不起作用。

有没有办法使用剃须刀模拟history.back,例如Url.Action

【问题讨论】:

  • 当你说安卓应用你是指安卓浏览器吗?
  • 嵌入浏览器的安卓应用

标签: javascript razor url-action


【解决方案1】:

您可以在会话中保存上一个页面 url。像这样的:

public ActionResult SomeCoolController(SomeCoolClass parameters) {
    //some logic

    var previousPageUrl = Session["PreviousPageUrl"];
    if(previousPageUrl == null)
        Session["PreviousPageUrl"] = Request.Url;

    var isTimeToChangePreviousUrl = Session["IsTimeToChangePreviousUrl"];
    if(isTimeToChangePreviousUrl != null) {
        if(isTimeToChangePreviousUrl) {
            Session["IsTimeToChangePreviousUrl"] = false;
            Session["PreviousPageUrl"] = Request.Url;
        } else {
            Session["IsTimeToChangePreviousUrl"] = true;
        }
    } else {
        Session["IsTimeToChangePreviousUrl"] = false;
    }

    //some return
}

另外,不要总是复制/粘贴此代码,您可以编写自己的 SuperDupaActionResult,它将继承自 ActionResult 并包含上面的代码(例如作为方法)。

【讨论】:

  • 谢谢,但我会尽量不要使用 Session。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 2017-01-19
相关资源
最近更新 更多