我在项目中有2页,让我们说' UserGrid'和'用户详细信息'。 ' UserGrid'显示用户列表。点击该行的ID列后,合作伙伴会重定向到“用户详细信息”。页面,显示用户的详细信息。
当合作伙伴点击ID时,我将UserID存储在会话中并在' User Deatils'中访问它。用于获取用户详细信息的页面。
现在让伙伴打开ID为1234的用户,然后在下一个标签中打开3456。现在我们有2个用户详细信息'页面有2个不同的用户数据,但在会话中我们只有第二个选项卡UserID作为第一个数据被覆盖。所以现在如果我将更新第一个用户详细信息,在后台它将更新第二个用户详细信息,因为会话第二个用户ID存在。
如何以最佳方式管理它,除了查询字符串?
答案 0 :(得分:1)
如果您确实不想在查询字符串中显示ID,则可以将值存储在ViewState中。这些是页面实例特定的,将在回发后存活,但不会在重定向中存活。
所以也许你需要这样做:
答案 1 :(得分:0)
在这些情况下,您必须使用 QueryString
<asp:HyperLink
ID="HyperLink1"
runat="server"
NavigateUrl="~/Webform2.aspx?UserId=1"
Text="User"
</asp:HyperLink>
在用户详细信息页面上获取
private void Page_Load(object sender, System.EventArgs e)
{
int ID = Convert.ToInt32( Request.QueryString["UserId"]);
// get user and display it
}
更多信息: