代码之家  ›  专栏  ›  技术社区  ›  Alex

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

  •  1
  • Alex  · 技术社区  · 14 年前

    我现在有两个ASP.NET页面。当我点击A页的链接时,我打开另一个(我们称之为B页)。当我这样做时,我想以字符串数组的形式将一些信息从A页发送到B页。这个数组是不同的,这取决于我在A页上所遵循的链接。

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

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

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

    干杯!

    4 回复  |  直到 14 年前
        1
  •  2
  •   Matti Virkkunen    14 年前

    只需发送URL中的值。无论如何,这可能是最正确的方法。指定在页面上显示的内容的信息应进入URL。如果你不想去的话,把它们装成逗号分隔的字符串。 string1=&string2= .

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

        2
  •  3
  •   Matthew Dresser    14 年前

    您可以使用会话状态。你可以在第一页这样写

    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");
    }
    
        3
  •  1
  •   k_b    14 年前
        4
  •  0
  •   Jimmy Chandra    14 年前

    如果我们谈论的是纯链接(a href)标记,那么除了将其放入querystring之外,没有其他选项。

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

    如果这是一种回发方式,那么您可以按照另一个答案中的建议使用会话,并重定向到另一个页面,然后从那里开始会话。