Asp.net 会话未显示

Asp.net session not showing

我在会话中存储 gridview 行的主键值并在另一个网页上显示它我正在尝试以下代码:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Migrate")
    {
        int _rowindex = Convert.ToInt32(e.CommandArgument);
        GridViewRow _selectedrow = GridView1.Rows[_rowindex];
        TableCell _firstcell = _selectedrow.Cells[0];
        Session["authId"] = _firstcell.Text + "";

        Response.Redirect("WebForm2.aspx");
    }
}

通常代码工作正常,但 _firstcell 在将我的页面重定向到 webform2 后 运行 值未存储在会话中 运行 其他情况。我正在使用以下代码 onpageload 的 webform2:

protected void Page_Load(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Session["authId"].ToString()))
        Response.Write(Session["authId"].ToString());
    else
    { 
        Response.Write("Empty Session");
    }
}

通过更改以下代码:

int _rowindex = Convert.ToInt32(e.CommandArgument);
GridViewRow _selectedrow = GridView1.Rows[_rowindex];
TableCell _firstcell = _selectedrow.Cells[0];
Session["authId"] = _firstcell.Text + "";
Response.Redirect("WebForm2.aspx");

进入以下代码:

int _rowindex = Convert.ToInt32(e.CommandArgument);
//we used datakey here for get primary key of specific row
var id = Convert.ToInt32(GridView1.DataKeys[_rowindex].Value);
Session["authId"] = id;
Response.Redirect("WebForm2.aspx");

我找到了解决方案。