伙计们我试图将变量从一个页面传递到另一个页面。在搜索时,我发现使用QueryString
方法或Session
用于传递变量。我不喜欢QueryString
方法,因为它在URL中显示可以修改的数据,所以我去了会话。
现在我在asp中添加了一个DataGridView
,每行都有一个按钮。单击此按钮后,将创建一个会话变量,其中包含单击按钮的行的第1列的值,然后重定向到我正在使用此会话变量的另一个页面。
现在问题是,当我使用Visual Studio调试器时,这工作正常,变量值根据按钮单击不断变化。但是,一旦我将网站上传到托管,我第一次点击DataGridView
中的按钮就会创建变量,但是当我再次按下不同行中的按钮时,变量值不会改变。它保持不变,除非我在重定向页面的浏览器中按F5,然后才会更新该值。
我认为该值存储在浏览器的缓存中,并且在我强制刷新页面之前不会更改。我该怎么做才能解决这个问题?有没有其他方法来传递变量而不是上面提到的两种方法?
创建会话和重定向的代码:
GridDataItem item = (GridDataItem)e.Item;
string ticketid = item["ID"].Text;
Session["viewID"] = ticketid;
Response.Redirect("View.aspx");
检索会话的代码:
String s = Session["viewID"] as String;
我还想避免使用Cookie,许多用户在浏览器中禁用了Cookie,因此使用Cookie不会是最佳的。
答案 0 :(得分:0)
尝试使用按钮点击事件存储在Cookie中
<强> Response.Cookies["viewID"].Value = Convert.ToBase64String(Encoding.UTF8.GetBytes(ticketid));
强>
你可以使用这段代码获得价值:
试试这个:-----
<强> String s =Encoding.UTF8.GetString(Convert.FromBase64String(Request.Cookies["viewID"].Value));
强>
抱歉,在Request.cookies [“viewID”]
之后我忘了.Value答案 1 :(得分:0)
它只是保存缓存中的值。我必须强制关闭ASP Web应用程序中的缓存设置。问题解决了。