У меня есть три .cshtml созданы с помощью WebMatrix:ASP.NET - статическая переменная жизненного цикла бритвы?
MyClass.cshtml, расположенный в App_Code:
@functions
{
public static string x;
public static void setX()
{
x = "some data";
}
}
WithSet.cshtml расположенный в корневом каталоге:
@{
MyClass.setX();
}
@MyClass.x
WithoutSet.cshtml, расположенной на корень:
@MyClass.x
Когда я посещаю остроумие hSet.cshtml, MyClass.x будет установлен в «некоторые данные», а после этого, когда я нахожусь в файле безSet.cshtml, MyClass.x все равно содержит «некоторые данные». Я ожидал, что класс будет свежим, не инициализированным, и поэтому MyClass.x. Я думаю, что я не совсем понимаю, что происходит, какова продолжительность жизни в классе? Класс здесь статичен?
Статические переменные уникальны для всего домена приложения на веб-сервере и будут сохраняться до перезапуска приложения. –
@StefanH Итак, вы имеете в виду, что пользователи делятся одними и теми же данными? – dpp
Исправить. Статические поля обычно следует избегать в веб-контексте именно по этой причине. –