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

C# ASP中的Eval()。如何在重定向到会话时传递值,c#,javascript,asp.net,C#,Javascript,Asp.net,我在网格视图中有一个图像按钮,它将组名重定向到send 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:ImageBu

我在网格视图中有一个图像按钮,它将组名重定向到send 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>

这是url

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

我不想在URL中传递值。我怎样才能不在URL中传递它呢

第二个问题:我也在用户页面上做同样的事情,在那里我传递用户id

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


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

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


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


一种可能性是按照您所说的去做,即在一个页面的会话中输入值,然后在另一个页面中检索。例如:

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

Session["Key"]=value;
在另一个页面中,您可以这样检索它:

var myData = Session["Key"];
你也可以按照JohnFX的建议,在a页创建一个cookie,然后在B页阅读

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

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

会话[“用户”]=“用户”或
会话[“组”]=“组”


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

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

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

“asp”和“javascript”链接是什么?那些标签看起来与我无关。你能把组名写进cookie吗?你说的“客户端会话”是什么意思?会话对象仅限于服务器端!老实说,我认为最好在URL中发送这样的内容。会话被过于频繁地依赖。只要我的两分钱。
var groupname = Request["GroupName"]