访问页面时,我正在以会话状态存储值。当我单击浏览器时,会话中的值将恢复为其原始值。为什么会这样?我回去的时候没有重置价值。
这种情况发生在iPhone和iPad上 - 所有其他浏览器都不会回滚会话状态值。
提前致谢。
我正在使用这个javascript代码(两个页面中的代码完全相同):
function pageLoad() {
// Get the current url path
var url = document.URL;
PageMethods.IsNavigatingBackward(url, handleCallback);
}
function handleCallback(isBackward) {
if (isBackward) {
// Go back to previous page
history.back();
}
else {
// Set the current url in the session
var url = document.URL;
PageMethods.SetCurrentPage(url, getLocation);
}
}
背后的代码:
[WebMethod]
public static bool IsNavigatingBackward(Uri url)
{
string currentPath = url.LocalPath;
string lastPath = (string)HttpContext.Current.Session["LastPage"];
bool isBackward = false;
NavigationList table = NavigationList.GetInstance();
if (table.IsBackwardNavigation(currentPath, lastPath))
{
isBackward = true;
}
return isBackward;
}
[WebMethod]
public static void SetCurrentPage(Uri url)
{
HttpContext.Current.Session["LastPage"] = url.LocalPath;
}
答案 0 :(得分:1)
如果浏览器为:
,您将只看到新的会话状态值如果这两个都是真的并且假设你没有在第二页加载的某处恢复该值,你将看到会话状态。
看来iPhone和iPad不会这样做。
答案 1 :(得分:0)
我认为你误解了正在发生的事情。更有可能的是,页面没有被重新下载(因此会话实际上并没有被设置为任何东西)。它只是使用以前缓存的下载页面。
答案 2 :(得分:0)
您可以尝试使用以下内容:
[WebMethod(EnableSession = true)]