C# 静态词典在用户之间共享
我在Home Controller中有2个声明的静态字典:C# 静态词典在用户之间共享,c#,asp.net-core,C#,Asp.net Core,我在Home Controller中有2个声明的静态字典: private static Dictionary<string, string> _existingBranchesDict; private static Dictionary<Guid, string> _choosedBranches; 由AJAX从单个视图上呈现的不同局部视图调用。它们为每个局部视图的所有下拉列表存储相同的数据,当用户选择单个元素时,应将其从其他局部视图的其他下拉列表中删除。您只需使用
private static Dictionary<string, string> _existingBranchesDict;
private static Dictionary<Guid, string> _choosedBranches;
由AJAX从单个视图上呈现的不同局部视图调用。它们为每个局部视图的所有下拉列表存储相同的数据,当用户选择单个元素时,应将其从其他局部视图的其他下拉列表中删除。您只需使用:
获取或设置可用于共享此请求范围内的数据的键/值集合
如果每个请求都应该是唯一的,为什么要将它们标记为静态的?每个动作都应该代表一个独特的请求,因此您的设计没有多大意义。请回答您的问题并澄清您实际想要实现的目标。听起来您可能想研究依赖项注入。您能写一些实现示例吗?
[HttpPost]
public void DeleteBranch(Guid partialViewID, int deletedBranchIndex)
{
if (_choosedBranches.ContainsKey(partialViewID))
{
var resettedBranch = _choosedBranches[partialViewID];
_existingBranchesDict[resettedBranch] = "Enabled";
_choosedBranches.Remove(partialViewID);
}
}
[HttpPost]
public void LoadBranch(string Name, Guid ID)
{
_existingBranchesDict[Name] = "Disabled";
if (_choosedBranches.ContainsKey(ID))
{
_existingBranchesDict[_choosedBranches[ID]] = "Enabled";
}
_choosedBranches[ID] = Name;
}