为请求的持续时间设置全局变量
我可以为单个Request的长度设置某种全局变量,以便页面的所有控件都可以响应它而不必将它传递给它们中的每一个吗?
例如,如果有人点击了我的MasterPage上的“保存”按钮,我是否可以设置一些内容,以便我页面上的每个UserControl都可以具有如下的Page_Load:
protected void Page_Load(object sender, EventArgs e) { if (isSaving) // isSaving is a global variable { saveData(); // save myself } loadData(); }
看起来要比使用母版页中的委托调用Page的save函数容易得多,后者然后将UC1.saveData()调用到每个UserControl,尽管我知道更好的面向对象思维。
是的你可以。 查看显而易见的地方:HttpContext和HttpContext.Current.Items
集合,在请求处理期间始终可以访问(请参阅http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx )。
就像一个提示 :
上述就是C#学习教程:为请求的持续时间设置全局变量分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)
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; } } }
本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ssfiction.com/ckf/1302102.html