在页面重定向之前更改属性值

时间:2014-05-30 15:02:26

标签: asp.net redirect properties

这是我的第二个asp.net应用程序。在第一个应用程序中,我依靠查询在页面之间传递值。它工作得很好,但我发现它很麻烦,不喜欢长URL。我希望依赖这个应用程序的属性,但我遇到了一个我不知道如何处理的问题。

我在页面上有两个图像按钮,它们重定向到同一页面,但是应该根据单击的按钮传递不同的值。我尝试使用OnClick事件在页面重定向之前设置公共属性的值。这不起作用,因为PreviousPage。{property}引发了一个空指针异常。我被迫使用PostBackUrl来访问PerviousPage属性,但这意味着我无法在OnClick事件中更改属性的值。怎么办?

如何从两个不同的图像按钮重定向到同一页面,然后在新页面中确定单击哪个按钮而不在URL中发送值?

1 个答案:

答案 0 :(得分:2)

如果您重新加载,回发或离开页面,公共属性值将丢失。如果您在页面生命周期中设置了此值,则只有在该周期结束时才会显示(当页面在浏览器中完全呈现时结束)。

在每个按钮的OnClick事件中,在重定向之前执行:

Session.Add("AnyNameHere", "valueWithButtonSpecificData");

然后在页面上重定向到读取值:

   if (Session["AnyNameHere"] != null) 
      string s = Session["AnyNameHere"].ToString();