我现在有两个asp.net页面。当我点击A页上的链接时,我打开另一个链接(让我们称之为B页)。当我这样做时,我想以一组字符串的形式从页面A向页面B发送一些信息。这个数组根据我在第A页上的链接而有所不同。
我知道我可以通过带有?string1 = bla1& string2 = bla2等的URL发送此信息,但我不希望这样,因为如果数组中有太多字符串,它会变得复杂
我认为有一些类似的东西,比如PHP中的POST,但是在ASP中会怎么样?
任何帮助将不胜感激。感谢。
干杯!
答案 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。