使用' Session'时避免更改变量的状态。在C#中

时间:2018-03-15 02:34:06

标签: c# asp.net

我想保存第二个请求的计算结果(分配给变量' ans')。为此,我使用Session。 即使它在第一个请求中工作,当我想在第二个请求(else-Statement)中调用该变量时,会发生以下错误:" 无法将带有[]的索引应用于类型&#的表达式39;对象' "

变量的状态是通过将其保存到Session还是从Session访问来改变的?

' ans'的格式和' ansTemp'第二个请求是5个项目的元组。

private Dictionary<string,int> DoCalculation(CalculatorModel model)
{
        var ansTemp = Session["ANS"];
        Dictionary<string, int> calculatedValues = new Dictionary<string, int>();
        if (ansTemp == null)
        {
            if (model != null)
            {
                Class1 clsOne = new Class1(pathToLib, pathToPyFile);
                try
                {
                    var ans = clsOne.CallFunction("first_chart", rootPythonDir, model.age);

                    //Session.Add("ANS", ans);
                    Session["ANS"] = ans;
                    var assetAllocationCategory = ans[1];

                 }
                 catch (Exception ex) { }
             }
         }
         else
         {
             var ans = ansTemp;
             var assetAllocationCategory = ans[1];
         }
}

1 个答案:

答案 0 :(得分:-1)

在访问Session [“ANS”]时,将ansTemp定义为动态而不是 var 解决了问题。