我想知道是否可以从页面上的用户控件访问页面的全局变量。
public partial class index : System.Web.UI.Page
{
FormsIdentity id = (FormsIdentity)User.Identity;
string custID = "some guid";
string accID = "some guid";
protected void Page_Load(object sender, EventArgs e)
{
}
}
这只是一个例子,我实际的全局变量是更复杂的自定义配置对象,但应该是一样的。
我想从用户控件访问变量。这会很有帮助,因为我需要在页面和用户控件上使用相同的对象,而且我真的不想在内存中检索和存储两次。
有人知道是否/如何做到这一点吗?谢谢!
最佳答案
是的,你可以。它被称为将变量传递给用户控件。当然,它不止一次存储在内存中,但这是保持关注点分离和制作可重用控件的“代价”。
如果项目是常量,您可以将它们存储为真正的全局变量并通过 global.asax 中的静态方法访问。如果基于请求,这不会以简单的方式工作,但您可以对其进行设计。
现在,对于您不想在内存中存储两次的评论。我不会担心这一点,因为它是少量信息 (1),尤其是因为它只会在请求期间持续 (2)。不完全正确,因为 GC 不会立即触发。
关于c# - .net - 从用户控件访问页面全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9894665/