【发布时间】:2020-12-20 15:42:59
【问题描述】:
protected void lnkotel1_Click(object sender, EventArgs e)
{
Session["xd"] = lblotelid1.Text;
Server.Transfer("~/otelsayfa.aspx");
Response.Redirect("otelsayfa.aspx?id=" + lblotelid1.Text);
}
protected void Page_Load(object sender, EventArgs e)
{
lblotelid.Text = Session["xd"].ToString();
var last = PreviousPage;
if (last != null)
{
lblotelid.Text = ((TextBox)last.FindControl("TextBox1")).Text;
}
else
{
lblotelid.Text = "no";
}
if (Request.QueryString.Get("id") == null)
{
lblotelid.Text = "no";
}
else
{
lblotelid.Text = Request.QueryString["id"].ToString();
}
我尝试了 3 种不同的变体,但都失败了。这是我一一运行此代码后的事件:
第一个代码:我收到一条错误消息:System.Web.SessionState.HttpSessionState.this[string].get, null
第二个代码:空白页
第三个代码:“否”(因为 else 条件)。如果我删除 else 条件,我会收到与第一个代码相同的错误消息。
我这几天都在尝试解决这个问题。而且我找不到任何缺陷。我现在真诚地感谢任何形式的帮助。
编辑:我可以毫无问题地将数据从 .master 页面传输到任何 .aspx 页面。但是从 .aspx 页面到不同的 .aspx 页面,这是不可能的。没办法。
【问题讨论】:
-
欢迎来到 SO!请不要将源代码作为图像发布。包含源代码并使用“代码示例”按钮对其进行正确格式化。
-
MasterPages 包装常规页面,因此如果有意义的话,它们是同一页面生命周期的一部分。是否为站点和/或页面启用了会话状态?使用服务器传输或 Response.Redirect,而不是两者都使用,因为我认为在这种情况下重定向会被忽略。
-
@Enzoaeneas 我不明白你所说的
codesession state enablecode是什么意思,但是站点中有一个登录和加入页面。他们工作得很好。此外,我不会一起使用这些代码。我只是这样写来展示它们。上面有2张图片,防止混在一起。 -
会话状态可以选择性地为asp.net页面启用/禁用。
标签: asp.net