Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在页面重定向之前更改属性值_Asp.net_Redirect_Properties - Fatal编程技术网

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

Asp.net 在页面重定向之前更改属性值,asp.net,redirect,properties,Asp.net,Redirect,Properties,这是我的第二个asp.net应用程序。在第一个应用程序中,我依靠查询在页面之间传递值。它工作得很好,但我发现它很麻烦,而且不喜欢长URL。我希望这个应用程序依赖于属性,但我遇到了一个我不确定如何处理的问题 我在页面上有两个图像按钮,它们重定向到同一页面,但根据单击的按钮,应该传递不同的值。我尝试使用OnClick事件在页面重定向之前设置公共属性的值。这不起作用,因为PreviousPage.{property}引发了空指针异常。我被迫使用PostBackUrl访问PervioUsage属性,但这

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

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


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

如果重新加载、回发或离开页面,公共属性值将丢失。如果在页面生命周期期间设置此值,则该值仅在该周期结束之前可用(在浏览器中完全呈现页面时结束)

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

Session.Add("AnyNameHere", "valueWithButtonSpecificData");
然后在页面上重定向到如下读取值:

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

您可以设置一个会话变量,或者使用JavaScript调用带有值的页面。或者,您可以打开新页面作为模式。有很多选择。我非常喜欢将会话访问权包装在get/set属性中。看起来更好;)有点像
公共字符串MyProperty{get{if(Session[“mySessionVar”!=null){return Session[“mySessionVar”].ToString();}else{return null};set{Session[“mySessionVar”]=value;}
会话变量!我从PHP时代就把这些都忘了。那是几年前的事了。谢谢