Как я могу отправить массив строк с одной страницы ASP.NET на другую? - PullRequest
1 голос
/ 01 июня 2010

Теперь у меня есть две страницы asp.net. Когда я нажимаю на ссылку на странице A, я открываю другую (назовем ее страницей B). Когда я делаю это, я хочу отправить некоторую информацию со страницы A на страницу B в виде массива строк. Этот массив отличается в зависимости от того, по какой ссылке я следую на странице A.

Я знаю, что мог бы отправить эту информацию через URL с? String1 = bla1 & string2 = bla2 и т. Д., Но я не хочу этого так, поскольку это может усложниться, если в массиве слишком много строк. 1003 *

Я думаю, что есть что-то похожее, например, POST в PHP, но как это будет в ASP?

Любая помощь будет оценена. Спасибо.

ура!

Ответы [ 4 ]

3 голосов
/ 01 июня 2010

Вы можете просто использовать состояние сеанса. Вы заполнили бы это на первой странице что-то вроде этого

Page.Session["MyArray"] = new string[] {"one", "two", "three" };

Затем получите информацию на целевой странице примерно так:

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

Edit:

В ответ на ваш комментарий вам нужно обработать событие 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");
}
2 голосов
/ 01 июня 2010

Просто отправьте значения в URL. Это, вероятно, самый правильный способ сделать это в любом случае. Информация, указывающая, что отображать на странице, должна идти в URL. Упакуйте их в запятую, если вам не нравится идти string1=&string2=.

Пожалуйста, не злоупотребляйте этим сеансом, если у вас нет слишком большого количества данных для передачи. В этом случае сохраните их в словаре в сеансе с уникальным ключом и передайте его в URL. Это позволяет избежать многих неожиданных проблем с медленными соединениями, просмотром вкладок, поисковыми роботами и еще чем-то подобным.

1 голос
/ 01 июня 2010

Вы можете использовать переменную сеанса или HttpContext следующим образом: http://www.codedigest.com/Articles/ASPNET/76_HttpContext_Object_for_Developers.aspx

0 голосов
/ 01 июня 2010

Если мы говорим о теге чистой ссылки (href), нет другого выбора, кроме как поместить его в строку запроса.

Если вы хотите взломать его, вы можете захватить событие onclick этих ссылок и перенаправить их в свой собственный обработчик событий, который будет составлять все, что вы хотите сказать ... скрытое поле и вызывать сообщение формы при нажатии событие происходит.

Если это что-то вроде обратной передачи, вы можете использовать Сессию, как предложено в другом ответе, сделать перенаправление на другую страницу и забрать Сессию оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...