C# asp.net-ascx和页面之间的变量传递
有没有办法将变量(对象)保留在页面范围内?我需要将一些对象从母版页传递到所有ascx文件。通常,我使用带有参数的方法或结构进行传递。但是现在我在问另一种方法。将其存储在会话中是个坏主意,因为我的对象应该只存在于页面作用域中。一种方法是在用户控件中设置属性。您可以从实现这些控件的所有页面读取和设置它们。一种方法是在用户控件中设置属性。您可以从实现它们的所有页面中读取和设置它们。因此您有母版页、用户控件和页面本身C# asp.net-ascx和页面之间的变量传递,c#,asp.net,scope,C#,Asp.net,Scope,有没有办法将变量(对象)保留在页面范围内?我需要将一些对象从母版页传递到所有ascx文件。通常,我使用带有参数的方法或结构进行传递。但是现在我在问另一种方法。将其存储在会话中是个坏主意,因为我的对象应该只存在于页面作用域中。一种方法是在用户控件中设置属性。您可以从实现这些控件的所有页面读取和设置它们。一种方法是在用户控件中设置属性。您可以从实现它们的所有页面中读取和设置它们。因此您有母版页、用户控件和页面本身 页面是母版页和用户控件的容器,因此它是唯一“了解”这两方的页面。因此,我建议(如果您没
页面是母版页和用户控件的容器,因此它是唯一“了解”这两方的页面。因此,我建议(如果您没有)使用页面实例,以方便对象/变量在它们之间传递。因此您有母版页、用户控件和页面本身
页面是母版页和用户控件的容器,因此它是唯一“了解”这两方的页面。因此,我建议(如果您没有)使用页面实例,以方便对象/变量在它们之间传递。您可以将变量公开为母版页的公共属性:
public string MyVariable { get; set; }
然后通过引用母版页并转换为其特定类型,从用户控件访问它们:
((MyMasterPageType)Page.Master).MyVariable
您可以将变量公开为母版页的公共属性:
public string MyVariable { get; set; }
然后通过引用母版页并转换为其特定类型,从用户控件访问它们:
((MyMasterPageType)Page.Master).MyVariable
如果变量的值将在每页的基础上更改,那么我建议您在基页(或用户控件)中编写该代码并继承所有页(或用户控件),如果所有页(或用户控件)的值都相似,那么您也可以使用cache对象
如果您觉得您甚至可以创建一个helper类并从您的基页(或用户控件)调用它,那么使用一种更好的方法,这样您就可以从页面中分离变量分配代码 如果变量的值将在每页的基础上更改,那么我建议您在基本页(或用户控件)中编写该代码并继承所有页(或用户控件),如果所有页(或用户控件)的值都类似,那么您也可以使用cache对象
如果您觉得您甚至可以创建一个helper类并从您的基页(或用户控件)调用它,那么使用一种更好的方法,这样您就可以从页面中分离变量分配代码 另一种选择是在HttpContext.Items集合中存储共享对象。另一种选择是存储共享对象在HttpContext.Items集合中。如果在基类或接口中定义这些属性,则它们可以在用户控件和母版页之间形成约定。如果在基类或接口中定义这些属性,则它们可以在用户控件和母版页之间形成约定。如果较小,y不是查询字符串?如果它很小,y不是查询字符串?