Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置请求持续时间的全局变量_C#_.net_Asp.net_Global Variables - Fatal编程技术网

C# 设置请求持续时间的全局变量

C# 设置请求持续时间的全局变量,c#,.net,asp.net,global-variables,C#,.net,Asp.net,Global Variables,我是否可以为单个请求的长度设置某种全局变量,以便页面的所有控件都可以响应它,而不必将其传递给每个控件 例如,如果有人点击我的母版页上的“保存”按钮,我是否可以设置一些内容,以便我的页面上的每个用户控件都可以加载页面,如: protected void Page_Load(object sender, EventArgs e) { if (isSaving) // isSaving is a global variable { saveData(); // sav

我是否可以为单个请求的长度设置某种全局变量,以便页面的所有控件都可以响应它,而不必将其传递给每个控件

例如,如果有人点击我的母版页上的“保存”按钮,我是否可以设置一些内容,以便我的页面上的每个用户控件都可以加载页面,如:

protected void Page_Load(object sender, EventArgs e)
{
    if (isSaving) // isSaving is a global variable
    {
        saveData();  // save myself
    }
    loadData();
}

这似乎比让一个来自母版页的委托调用页面的save函数要容易得多,然后该函数调用UC1.saveData()到每个用户控件,尽管我知道这是更好的面向对象思维。

是的,你可以。查看明显的位置:HttpContext和
HttpContext.Current.Items
集合,它们在请求处理过程中总是可以访问(请参阅)

作为提示:


+1将其包装在自定义类中以集中密钥名称非常感谢-这非常有用。
public static class RequestScopedData
{
    private const string key = "key_that_you_choose";
    public static bool IsSaving
    {
        get
        {
            object o = HttpContext.Current.Items[key];
            return Convert.ToBoolean(o);            
        }
        set
        {
            HttpContext.Current.Items[key] = value;
        }
    }
}