Доступ к переменным в пользовательском элементе управления asp.net и включаемом файле

Я задавал этот вопрос раньше, но не смог получить ответ, который искал, поэтому я попробую еще раз.

Я перевожу страницы со старого asp на asp.net и не хочу делать это каким-либо другим способом, поэтому я просто хочу знать, можно ли это сделать.

В asp я бы назначил переменную на одной странице

<% myVar = "something" %>

Я мог бы назначить здесь много переменных, а затем использовать включение

<!--#include file="Test2.aspx"--> 

затем в файле test2 я мог получить доступ ко всем переменным без необходимости передавать все переменные в элемент управления или объявлять их снова, например

<% myVar = "something else" %>

Я хочу сделать это точечным способом, но у меня есть около тридцати переменных на странице, и я не хочу передавать кучу в пользовательский элемент управления, и я не хочу продолжать объявлять одни и те же переменные.

Все, что я действительно хочу знать, это то, есть ли способ воспроизвести описанное выше поведение в asp.net?


person user204588    schedule 17.12.2009    source источник


Ответы (2)


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

В качестве альтернативы вы можете создать одноэлементный класс, в котором вы определили эти переменные как набор общедоступных свойств. Затем вы можете использовать этот вызов на любой странице, которая вам нравится.

Опять же, могут быть другие лучшие способы добиться этого.

person Amit Rai Sharma    schedule 17.12.2009
comment
+1, люди должны прекратить использовать включаемые файлы. они такие классические жерехи. - person Martin Ongtangco; 27.05.2011

Если под «реплицировать» вы подразумеваете «поддерживать синтаксис с тем же поведением», то нет. Если у вас есть статические переменные, которые вы хотите сделать доступными во всем приложении или в сеансе, рассмотрите возможность их инициализации в Global.asax в состоянии приложения или сеанса.

person Dave Swersky    schedule 17.12.2009