static
在ASP.NET中是一個壞主意。你所有的用戶都會共享同一個標誌,如果點擊「刪除」,它也被標記爲「刪除」給其他用戶。相反,您可以使用會話。如果您想要將多個信息以可讀和可維護的方式存儲在爲此目的而製作的特殊類型中,則這是一個包含字典和自定義枚舉作爲鍵的自定義類。
爲重點的枚舉:
public enum EntryEventType
{
Undefined = 0,
NewEntry = 1,
DeletedEntry = 2,
// ....
}
一個類來封裝事件信息,它的狀態和最後更新的信息:
public class EntryEvent
{
public EntryEvent(EntryEventType type)
{
EventType = type;
}
public EntryEventType EventType { get; set; }
public bool? Flag { get; private set; }
public DateTime? LastChanged { get; private set; }
public static EntryEvent GetTrue(EntryEventType type)
{
var e = new EntryEvent(type);
e.SetFlag(true);
return e;
}
public static EntryEvent GetFalse(EntryEventType type)
{
var e = new EntryEvent(type);
e.SetFlag(false);
return e;
}
public void SetFlag(bool flag)
{
Flag = flag;
LastChanged = DateTime.Now;
}
}
一個封裝字典存儲信息類對於每種事件類型:
public class UserEntryFlags
{
private readonly Dictionary<EntryEventType, EntryEvent> UserEntryFlagDict = new Dictionary<EntryEventType, EntryEvent>();
public UserEntryFlags()
{
UserEntryFlagDict.Add(EntryEventType.NewEntry, new EntryEvent(EntryEventType.NewEntry));
UserEntryFlagDict.Add(EntryEventType.DeletedEntry, null);
// ...
}
public EntryEvent this[EntryEventType type]
{
get
{
return UserEntryFlagDict[type];
}
set
{
UserEntryFlagDict[type] = value;
}
}
}
該類的一個實例可以存儲在sessio中n:
protected void CreateNewEntry(Object sender, EventArgs e)
{
var entryFlags = Session["UserEntryFlags"] as UserEntryFlags;
if (entryFlags == null) entryFlags = new UserEntryFlags();
entryFlags[EntryEventType.NewEntry] = EntryEvent.GetTrue(EntryEventType.NewEntry);
Session["UserEntryFlags"] = entryFlags;
}
protected void DeleteNewEntry(Object sender, EventArgs e)
{
var entryFlags = Session["UserEntryFlags"] as UserEntryFlags;
if (entryFlags == null) entryFlags = new UserEntryFlags();
entryFlags[EntryEventType.DeletedEntry] = EntryEvent.GetTrue(EntryEventType.DeletedEntry);
Session["UserEntryFlags"] = entryFlags;
}
'static'在ASP.NET中是個壞主意。你所有的用戶都會共享同一個標誌,如果點擊「刪除」,它也被標記爲「刪除」給其他用戶。相反,你可以使用'Session'。 –
很難理解你的問題,你應該更好地組織它。 –
@АндрейГолубцов在URL中添加一個ID不會使每個用戶都具有唯一的靜態變量。 – Servy