C# 如何将字符串数组从一个ASP.NET页面发送到另一个页面?

C# 如何将字符串数组从一个ASP.NET页面发送到另一个页面?,c#,asp.net,linker,C#,Asp.net,Linker,我现在有两个asp.net页面。当我点击a页上的一个链接时,我打开了另一个链接(我们称之为B页)。当我这样做时,我想以字符串数组的形式将一些信息从A页发送到B页。此数组根据我在A页上的链接不同而有所不同 我知道我可以使用?string1=bla1&string2=bla2等通过URL发送此信息,但我不希望这样,因为如果数组中的字符串太多,它可能会变得复杂 我想也有类似的东西,比如PHP中的帖子,但在ASP中又会是什么呢 任何帮助都将不胜感激。谢谢 干杯 您可以像这样使用会话变量或HttpCont

我现在有两个asp.net页面。当我点击a页上的一个链接时,我打开了另一个链接(我们称之为B页)。当我这样做时,我想以字符串数组的形式将一些信息从A页发送到B页。此数组根据我在A页上的链接不同而有所不同

我知道我可以使用?string1=bla1&string2=bla2等通过URL发送此信息,但我不希望这样,因为如果数组中的字符串太多,它可能会变得复杂

我想也有类似的东西,比如PHP中的帖子,但在ASP中又会是什么呢

任何帮助都将不胜感激。谢谢


干杯

您可以像这样使用会话变量或HttpContext:

您可以像这样使用会话变量或HttpContext:

您可以只使用会话状态。您可以在第一页这样填充它

Page.Session["MyArray"] = new string[] {"one", "two", "three" };
然后使用以下方法检索目标页面中的信息:

string[] values = Page.Session["MyArray"] as string[];
编辑:

为了回应您的评论,您需要处理链接按钮的OnClick事件,例如

<asp:LinkButton ID="myButton" Text="Click Me" OnClick="myButton_Click" runat="server"/>

您可以只使用会话状态。您可以在第一页这样填充它

Page.Session["MyArray"] = new string[] {"one", "two", "three" };
然后使用以下方法检索目标页面中的信息:

string[] values = Page.Session["MyArray"] as string[];
编辑:

为了回应您的评论,您需要处理链接按钮的OnClick事件,例如

<asp:LinkButton ID="myButton" Text="Click Me" OnClick="myButton_Click" runat="server"/>

只需发送URL中的值。无论如何,这可能是最正确的方法。指定页面上显示内容的信息应放在URL中。如果您不喜欢使用
string1=&string2=
,请将它们打包成逗号分隔的字符串


请不要为此滥用会话,除非您有大量数据要传递。在这种情况下,使用唯一键将它们存储在会话中的字典中,并将其传递到URL中。这避免了连接速度慢、选项卡式浏览、爬虫等许多意外问题。

只需发送URL中的值即可。无论如何,这可能是最正确的方法。指定页面上显示内容的信息应放在URL中。如果您不喜欢使用
string1=&string2=
,请将它们打包成逗号分隔的字符串


请不要为此滥用会话,除非您有大量数据要传递。在这种情况下,使用唯一键将它们存储在会话中的字典中,并将其传递到URL中。这避免了连接速度慢、标签式浏览、爬虫等许多意想不到的问题。

如果我们谈论的是纯链接(a href)标签,那么除了将其放入querystring之外,别无选择

如果您想破解它,您可以捕获这些链接的onclick事件,并将它们重定向到您自己的事件处理程序,该处理程序将编写您需要说的任何内容。。。一个隐藏字段,并在单击事件发生时调用表单post


如果是回发类的,您可以按照另一个答案中的建议使用会话,并重定向到另一个页面,然后从那里获取会话。

如果我们谈论的是纯链接(a href)标记,那么除了将其放入querystring中之外,别无选择

如果您想破解它,您可以捕获这些链接的onclick事件,并将它们重定向到您自己的事件处理程序,该处理程序将编写您需要说的任何内容。。。一个隐藏字段,并在单击事件发生时调用表单post


如果是回发类的,您可以按照另一个答案中的建议使用会话,并重定向到另一个页面,然后从那里获取会话。

该数组取决于单击的链接。所以我需要在超链接的“click”方法上设置数组,但它没有数组。我该怎么办?嗨。谢谢你的回复。我试着做linkButton.Click+=new Eventhandler等,但是当我点击链接按钮时,即使我附加到链接按钮上也没有响应…你不需要像那样在代码中设置事件处理程序(除非你使用的是.Net 1.1),就像我在上面所做的那样,在你的aspx页面中使用OnClick属性。这对你有用吗?因为我正在我的机器上尝试,当我点击链接时,它不会在服务器上拾取onclick事件。是的,它对我有效。您是否有机会关闭浏览器中的JavaScript?该数组取决于单击的链接。所以我需要在超链接的“click”方法上设置数组,但它没有数组。我该怎么办?嗨。谢谢你的回复。我试着做linkButton.Click+=new Eventhandler等,但是当我点击链接按钮时,即使我附加到链接按钮上也没有响应…你不需要像那样在代码中设置事件处理程序(除非你使用的是.Net 1.1),就像我在上面所做的那样,在你的aspx页面中使用OnClick属性。这对你有用吗?因为我正在我的机器上尝试,当我点击链接时,它不会在服务器上拾取onclick事件。是的,它对我有效。您的浏览器中是否关闭了JavaScript?谢谢,但ASP.NET中的超链接显然没有单击事件。如何将单击事件链接到方法?从客户端执行。我想到了Javascript/jQuery。。。我的jQuery有点生疏,但是这个脚本应该相当于一个链接标签。。。document.getElementById(“#myLink1”).onclick=function(e){/*在这里执行一些操作,将必要的数据推送到一个或多个隐藏字段中*/;document.getElementById(“#myForm”).submit()}假设表单id为myForm,链接id为myLink1,表单方法为POSToops。。您不需要id前面的#:)谢谢,但是ASP.NET中的超链接显然没有单击事件。如何将单击事件链接到方法?从客户端执行。我想到了Javascript/jQuery。。。我的jQuery有点生疏了,但它不是