如何从Global.asax中的asp页面(代码隐藏)访问控件或函数?
我使用下面的代码进行后台任务,此代码每隔60秒检查一次新电子邮件,我想更新一个标签,显示default.aspx中新电子邮件的计数
void Application_Start(object sender, EventArgs e)
{
AddTask("CheckEmails", 10);
}
private void AddTask(string name, int seconds)
{
OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
HttpRuntime.Cache.Insert(name, seconds, null, DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
CacheItemPriority.NotRemovable, OnCacheRemove);
}//addTask
public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
//Check New Emails and update label from .aspx
AddTask(k, Convert.ToInt32(v));
}//CacheItemRemoved
答案 0 :(得分:0)
你为什么要这样做。请提供更多信息
虽然你可以创建一个Default page
的对象并调用它的功能。
但如果这与页面无关,那么只使用它是好的。
您无需从application start
拨打电话。
您可以在页面加载(在登录页面后调用)上调用此函数。
您可以使用相同的密钥检查缓存中的现有值
如果存在则不要修改缓存
否则将您的值放入缓存中。
答案 1 :(得分:0)
为常用功能创建一个单独的类,将其放在app_code文件夹中,然后从Default.aspx和global.asax ....访问此函数。