使用razor模拟javascript history.back

时间:2012-11-27 18:55:08

标签: javascript razor url-action

我有这样的javascript代码:

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

当我在浏览器中测试我的网站(使用HTML5,MVC4)时,它可以正常工作。但是当我使用嵌入式浏览器在Android / iPhone应用程序中运行它时,我的后退链接不起作用。

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

1 个答案:

答案 0 :(得分:1)

您可以在会话中保存上一页网址。像这样:

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继承并包含上面的代码(例如,作为方法)。