这是我的第二个asp.net应用程序。在第一个应用程序中,我依靠查询在页面之间传递值。它工作得很好,但我发现它很麻烦,不喜欢长URL。我希望依赖这个应用程序的属性,但我遇到了一个我不知道如何处理的问题。
我在页面上有两个图像按钮,它们重定向到同一页面,但是应该根据单击的按钮传递不同的值。我尝试使用OnClick事件在页面重定向之前设置公共属性的值。这不起作用,因为PreviousPage。{property}引发了一个空指针异常。我被迫使用PostBackUrl来访问PerviousPage属性,但这意味着我无法在OnClick事件中更改属性的值。怎么办?
如何从两个不同的图像按钮重定向到同一页面,然后在新页面中确定单击哪个按钮而不在URL中发送值?
答案 0 :(得分:2)
如果您重新加载,回发或离开页面,公共属性值将丢失。如果您在页面生命周期中设置了此值,则只有在该周期结束时才会显示(当页面在浏览器中完全呈现时结束)。
在每个按钮的OnClick事件中,在重定向之前执行:
Session.Add("AnyNameHere", "valueWithButtonSpecificData");
然后在页面上重定向到读取值:
if (Session["AnyNameHere"] != null)
string s = Session["AnyNameHere"].ToString();