【发布时间】:2011-01-30 05:12:41
【问题描述】:
如何在母版页中声明一个名为 MyDic 的字典?
我希望 MyDic 以日期为键保存 MyObj 对象列表,以便我可以编写如下内容:“从 MyDic 获取日期 1/28/2011 的列表”或“将此 MyObj 列表从 1 /28/2011 在 MyDic 中”。
我想在母版页中声明字典,以便我可以在每个页面中访问它。
谢谢。
【问题讨论】:
标签: c# asp.net session-variables
如何在母版页中声明一个名为 MyDic 的字典?
我希望 MyDic 以日期为键保存 MyObj 对象列表,以便我可以编写如下内容:“从 MyDic 获取日期 1/28/2011 的列表”或“将此 MyObj 列表从 1 /28/2011 在 MyDic 中”。
我想在母版页中声明字典,以便我可以在每个页面中访问它。
谢谢。
【问题讨论】:
标签: c# asp.net session-variables
您打算如何保留该列表? 您可以将其创建为应用程序变量,或者如果它是用户特定的会话变量,而不是在母版页中创建它。在任何一种情况下,您都会执行以下操作:
Dictionary<DateTime, myObj> myList = new Dictionary<DateTime, myObj>();
然后你将它存储在某个地方:
Session["MyList"] = myList;
当您需要再次访问它时:
Dictionary<DateTime, myObj> myList = (Dictionary<DateTime, myObj>)Session["MyList"];
您可以在初始化或加载时在母版页中进行声明,或者更好的是我建议在会话或应用程序的 global.asax 文件中进行声明
【讨论】:
您可以在母版页上创建一个公共属性,然后通过设置 MasterType 指令在内容页中使用它。例如如果您有一个名为 MyMasterPage 的母版页,那么这里是代码示例
/// declare it in Master Page
public Dictionary<DateTime, typeof(List<MyObj_Type>)> MyDic {
get;
set;
}
/// put the line just under Page directive on your content page where you want to access it
<%@ MasterType virtualPath="~/MyMasterPage.master"%>
/// and then on content page you can access by
** Note: The intelisense may not work but don't worry just put the code in content page and it works.**
Master.MyDic.Add(DateTime.Now, MyObj);
这里是Accessing Members on the Master Page的详细信息
祝你有个美好的一天!!!
【讨论】:
您可以使用session 或application 变量进行此类共享。
这种场景几乎就是他们创建的目的。
【讨论】: