如何从一个ASP.NET页面向另一个ASP.NET页面发送字符串数组?

时间:2010-06-01 10:02:29

标签: c# asp.net linker

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

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

我认为有一些类似的东西,比如PHP中的POST,但是在ASP中会怎么样?

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

干杯!

4 个答案:

答案 0 :(得分:3)

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

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"/>

然后在你的代码中,你需要设置如上所述的会话状态,例如

protected void myButton_Click(object sender, EventArgs e)
{
    Page.Session["MyArray"] = new string[] {"one", "two", "three" };
    Response.Redirect("~/AnotherPage.aspx");
}

答案 1 :(得分:2)

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

请不要滥用会话,除非您有大量的数据需要通过。在这种情况下,使用唯一键将它们存储在会话的字典中,并将其传递到URL中。这避免了许多意外的问题,包括连接速度慢,标签式浏览和抓取工具等等。

答案 2 :(得分:1)

您可以使用会话变量或HttpContext,如下所示:http://www.codedigest.com/Articles/ASPNET/76_HttpContext_Object_for_Developers.aspx

答案 3 :(得分:0)

如果我们谈论纯链接(一个href)标记,除了将它放在查询字符串中之外别无选择。

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

如果它是一种回发类型的东西,你可以按照另一个答案的建议使用Session,并重定向到另一个页面并从那里拿起Session。