ASP中的Eval()。如何在会话中重定向传递值

时间:2011-09-07 12:46:48

标签: c# javascript asp.net

我在网格视图中有这个图像按钮,它将组名重定向到发送message.aspx。

 <asp:ImageButton ID="img_Send" ImageUrl="Styles/Images/Message.jpg" Enabled="True" Width="" runat="server" PostBackUrl='<%# Eval("GroupName", "SendMessage.aspx?GroupName={0}") %>'></asp:ImageButton>

http://localhost:48996/SurelyK/SendMessage.aspx?GroupName=Jobs 这是网址

是否可以将值存储在客户端的会话中,以便我可以在服务器端编码中使用它。

我不想传递URL中的值。如何在不通过URL的情况下执行此操作。

第二个q:我也在用户页面中执行相同操作,我传递了用户ID。

http://localhost:48996/SurelyK/SendMessage.aspx?UserID=3

在我的sendmessage服务器端代码中,我必须将消息保存在消息表中,然后将用户名和消息ID保存在usermessage表中。

用于插入userdetails usermessage表的代码和用于在grouptable中插入groupdetails的代码是不同的。我必须在发送按钮单击时执行这两项操作。如何检查重定向哪个页面发送消息页面,是组还是用户页面..

4 个答案:

答案 0 :(得分:0)

您可以使用以下方案。但为此,您需要使用Server.Transfer而不是Respons.Redirect

http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx

答案 1 :(得分:0)

您要找的是一个cookie。 Cookie存储客户端状态信息,并随每个请求一起发送到服务器。这是一篇关于如何在ASP.NET中使用它们的文章

http://www.codeproject.com/KB/aspnet/Beginners_Cookies.aspx

答案 2 :(得分:0)

一种可能性就是按照你说的做,即将Session中的值放在一个页面中,然后在另一个页面中检索它。例如:

在一个页面中,您可以执行此操作:

Session["Key"]=value;

在另一个页面中,您可以像这样检索它:

var myData = Session["Key"];

你也可以做JohnFX提出的建议,即在A页上创建一个cookie并在第B页上阅读。

对于第二个问题,如果你采用Session方法,你可以这样做:

在将用户重定向到SendMessage页面的页面上,您可以执行以下操作:

会话[“USER”] =“用户”或Session["GROUP"]="Group";

SendMessage.aspx页面上,检查Session["User"]是否为空,如果不为空,则表示用户已从User页面重定向;如果为null,则检查Session["Group"]是否为空,如果不是,则表示用户已从Group页面重定向。

答案 3 :(得分:0)

groupname放入客户端更新的隐藏html字段中。它将被发布到服务器,您可以从请求中读取它。

<asp:HiddenField runat="server" ID="groupname" Value='<%# Eval("GroupName") %>'/>
<asp:ImageButton ... PostBackUrl="SendMessage.aspx" />

然后在SendMessage中:

var groupname = Request["GroupName"]