【问题标题】: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 并包含上面的代码(例如作为方法)。