У меня есть библиотека классов .Net. Я хочу передать скрытую переменную из когда-то кода за страницей и извлечь ее из другого кода за страницей. Пожалуйста, обратите внимание, у меня нет какой-либо страницы дизайна (aspx страница), где я могу использовать тег формы и метод get / post. Как мы можем это сделать?
Примечание: я хочу использовать скрытые поля для передачи значения с одной страницы на другую.
вы можете сохранить значение в сеансе как:
Session["YourName"] = yourvalue;
в коде позади вас сделать это:
Session["MyValue"] = "theValueYouWantToPass";
на другой странице вы делаете:
string valueFromAnotherPage = Session["MyValue"].ToString();
Если вы хотите сохранить переменную скрытой, вы можете использовать сеанс для хранения вашего объекта.
Например,
Установка значения сеанса
Session["HiddenValue"] = "something";
Получение значения сеанса
string something = (string)Session["HiddenValue"];
Имейте в виду, однако, что сеансы проводятся только в течение ограниченного времени (это можно настроить через IIS и вашу веб-конфигурацию).
Вот хороший ресурс, чтобы узнать о сеансах и состоянии сеанса .
Как насчет постбэков между страницами (см. Постраничное размещение страниц на веб-страницах ASP.NET, http://msdn.microsoft.com/en-us/library/ms178139.aspx)? Никогда не использовал его, но это мог бы быть вариант. В противном случае вы можете получить доступ к скрытому элементу формы через Старая школа Request.Form. Другой вариант может заключаться в том, чтобы всегда иметь этот скрытый элемент на каждой странице, помещая его на главную страницу. Затем вы выставляете его как общедоступное свойство и можете получить / установить его в соответствии с вашим сердцем.
Вы можете использовать Session или HttpContext.Current.Items. Если ваше значение является временной переменной, я предлагаю использовать HttpContext.Current.Item вместо сеанса, поскольку он пропадет, как только текущий HttpContext исчезнет, но элементы, которые хранятся в Сессия не будет очищена, пока сессия не закончится.
Session["var"]=value; var value=Session["var"]; HttpContext.Current.Items["var"]=value; var value=HttpContext.Current.Items;
Вы могли бы использовать переменную Session? Они не мои предпочтения, но это удовлетворит вашу потребность.
Session["VariableName"] = something; object somethingOnNextPage = Session["VariableName"];
Доброжелательность,
Dan