Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态词典在用户之间共享_C#_Asp.net Core - Fatal编程技术网

C# 静态词典在用户之间共享

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从单个视图上呈现的不同局部视图调用。它们为每个局部视图的所有下拉列表存储相同的数据,当用户选择单个元素时,应将其从其他局部视图的其他下拉列表中删除。您只需使用

我在Home Controller中有2个声明的静态字典:

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;
    }