在Default.aspx 点击链接到Default2.aspxDefault.aspx:
protected void Page_Load(object sender, EventArgs e)
{
ParentId = Request["ParentId"];
Session["ParentId"] = ParentId;
Response.Write("Session1" + Session["ParentId"]);
}
Default2.aspx:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Session2" + Session["ParentId"]);
}
为什么在Default.aspx后退后,点击Default2.aspx
Default.aspx的session值变了,
Default2.aspx的session值还是一样呢?
protected void Page_Load(object sender, EventArgs e)
{
ParentId = Request["ParentId"];
Session["ParentId"] = ParentId;
Response.Write("Session1" + Session["ParentId"]);
}
Default2.aspx:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Session2" + Session["ParentId"]);
}
为什么在Default.aspx后退后,点击Default2.aspx
Default.aspx的session值变了,
Default2.aspx的session值还是一样呢?
点击链接到Default2.aspx
Session["ParentId"]的值,竟然还是2
Session["ParentId"] = ParentId;
断点调试 看 ParentId 的值。
输出Session11Response.Write("Session2" + Session["ParentId"]);
还是输出Session22
那点击链接后获取的session也应该是1啊 为什么还是2呢?
节点1
然后点击节点1显示父节点为1的节点 Default2.aspx是添加节点页面,根据Session["ParentId"]获取父节点正常情况下1->2->3->4
点击添加页面(Default2.aspx)都正常从4后退到3->2->1
这时候点击添加页面(Default2.aspx) 就出问题了
添加页面的Session["ParentId"] 一直是4
将Session["ParentId"] = ParentId;改为Session["ParentId"] = 1.就明白了
因为这个ParentId要变化的
根据进入的节点 变化
ParentId值:-1->1->2->3->4现在是后退时候另一界面获取的值ParentId没变,如果后退时刷新下,又正常了
javascript:history.go(-1);
难道是javascript:history.go(-1)后Page_Load不会执行?
session
网上查了下面的后退刷新,但是只能后退一个页面,怎么后退多个页面刷新呢?
if (!IsPostBack)
{
if (Request.UrlReferrer != null)
ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
} protected void ButtonBack_Click(object sender, EventArgs e)
{
Response.Redirect(ViewState["UrlReferrer"].ToString());
}<asp:Button ID="ButtonBack" runat="server" Text="back" OnClick="ButtonBack_Click"/>
换种方式实现,a页面跳转前直接设置session。
所以是逻辑上的问题
为什么sessoin为空Default.aspx才应该赋值?同一时刻 Session["ParentId"]值是唯一的吧
Default.aspx页面赋值了 就以Default.aspx为准啊 Default2.aspx获取的session值 也更新了
.net的session操作方式 和java不一样吗?