2
我有三個.cshtml使用WebMatrix中創建的:位於App_Code文件ASP.NET - 剃刀靜態變量壽命?
MyClass.cshtml:
@functions
{
public static string x;
public static void setX()
{
x = "some data";
}
}
WithSet.cshtml位於根:
@{
MyClass.setX();
}
@MyClass.x
WithoutSet.cshtml位於根:
@MyClass.x
當我訪問Wit hSet.cshtml,MyClass.x將被設置爲「一些數據」,然後,當我訪問WithoutSet.cshtml時,MyClass.x仍然包含「一些數據」。我期待這個類是新鮮的,沒有初始化,所以MyClass.x。我認爲我不完全理解發生了什麼,班級的壽命是多少?這裏的課是靜態的嗎?
靜態變量對於Web服務器上的整個應用程序域是唯一的,並且在應用程序重新啓動之前將保持不變。 – 2012-02-20 06:46:44
@StefanH所以你的意思是用戶分享相同的數據? – dpp 2012-02-20 06:48:57
正確。正因爲這個原因,通常應該避免在Web環境中使用靜態字段。 – 2012-02-20 06:50:10