我应该如何存储少量事件数据并在两个asp.net页面之间共享?

时间:2011-12-06 14:31:28

标签: c# asp.net

我是一名PHP开发人员,并被要求对Asp.Net网站进行一些修改。一页上有一个硬编码表,其中包含事件信息(日期,地点等)。该页面使用javascript根据事件是否已经发生来切换表格行颜色。

我需要在另一个页面上添加一个块,根据当前日期显示2个即将发生的事件。在页面之间存储和共享事件数据的最简单方法是什么?没有可用的数据库,因此它需要是本地文件或数组等。

我希望对任何合适的好图书馆/技术有所了解。这是一个简单,低流量的网站。

3 个答案:

答案 0 :(得分:2)

创建一个代表Event的小班,然后将其存储在Session state中:

public class EventInfo
{
    //c# auto-implemented properties
    public string Bla {get; set;} 
    public int Bla2 {get; set;}
}

//set on one page
var eventInfo = new EventInfo();
eventInfo.Bla = "bla";
eventInfo.Bla1 = 2;
Sesssion["eventinfo"] = eventInfoObject;


//get on another
var eventInfo = (EventInfo)Session["eventinfo"]; //add null checks etc
string bla = eventInfo.Bla;
int Bla2 = eventInfo.Bla2;

//************************************************//

//set multiple events in Session  
List<EventInfo> events = new List<EventInfo>();   
events.Add(new EventInfo{ Bla= "bla", Bla1 = 2});
events.Add(new EventInfo{ Bla= "bla2", Bla1 = 3});
Sesssion["eventCollection"] = events ;

//get 
List<EventInfo> events = (List<EventInfo>)Session["eventCollection"]; //add null checks etc
foreach(EventInfo event in Events)
{
    string bla = event.Bla;
    int Bla2 = event.Bla2;
}

答案 1 :(得分:1)

你可以使用session。

 Session["data"] = value;

您可以将任何对象存储在会话中并在检索时将其强制转换,例如

Session["data"] = 1;

int value =  Session["data"] != null ? (int)Session["data"] : 0

类似的东西。

答案 2 :(得分:0)

最简单的方法是使用Session变量。