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

C# 如何存储少量事件数据并在两个asp.net页面之间共享?,c#,asp.net,C#,Asp.net,我是一名PHP开发人员,被要求对Asp.Net网站进行一些修改。一页上有一个硬编码表,其中包含活动信息(日期、地点等)。页面使用javascript根据事件是否已经发生来切换表行颜色 我需要在另一个页面上添加一个块,根据当前日期显示2个即将发生的事件。在页面之间存储和共享事件数据的最简单方法是什么?没有可用的数据库,因此需要是本地文件或数组等 我希望能对任何合适的优秀库/技术有所了解。这是一个简单、低流量的站点。您可以使用会话 Session["data"] = value; 您可以在会话中

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

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


我希望能对任何合适的优秀库/技术有所了解。这是一个简单、低流量的站点。

您可以使用会话

 Session["data"] = value;
您可以在会话中存储任何对象,并在检索时强制转换它,如

Session["data"] = 1;


类似于此。

创建一个表示
事件的小型类,然后将其存储在:

公共类事件信息
{
//c#自动实现的属性
公共字符串Bla{get;set;}
公共int Bla2{get;set;}
}
//放在一页上
var eventInfo=new eventInfo();
eventInfo.Bla=“Bla”;
eventInfo.Bla1=2;
seSSION[“eventinfo”]=eventInfoObject;
//换一个
var eventInfo=(eventInfo)会话[“eventInfo”]//添加空检查等
字符串bla=eventInfo.bla;
int Bla2=eventInfo.Bla2;
//************************************************//
//在会话中设置多个事件
列表事件=新列表();
添加(新事件信息{Bla=“Bla”,Bla1=2});
添加(新事件信息{Bla=“bla2”,Bla1=3});
session[“eventCollection”]=事件;
//得到
列表事件=(列表)会话[“eventCollection”]//添加空检查等
foreach(事件中的事件信息事件)
{
字符串bla=event.bla;
int Bla2=event.Bla2;
}

最简单的方法是使用会话变量

您应该确保该会话在您的项目中可用。如果网站是负载平衡的,那么这可能不是最好的方法-在这种情况下,你可能必须考虑基于cookie的解决方案。同意,这是一个负载问题,有很多解决方案。我不认为cookie是一个好主意,因为用户的浏览器可能会阻止它们。会话将可用。是{get;set;}速记/伪代码还是自动生成getter和setter?另外,如何将多个事件添加到会话['eventInfo']数组中?我是否会遇到数组不可变的问题?如何从会话中检索eventInfo.Bla1属性?
int value =  Session["data"] != null ? (int)Session["data"] : 0
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;
}