Asp.net mvc 转到其他视图时MVC 5会话不存在

Asp.net mvc 转到其他视图时MVC 5会话不存在,asp.net-mvc,session,model-view-controller,Asp.net Mvc,Session,Model View Controller,控制器调用另一个视图进行渲染后,会话变量丢失 public ActionResult Index(Customer model, string cancel, string effective) { if(!string.IsNullOrEmpty(cancel)) { //update database Session["variable2"] = new Info(){ Text = "Do not processed"}; return View("Cancel

控制器调用另一个视图进行渲染后,会话变量丢失

public ActionResult Index(Customer model, string cancel, string effective)
{
if(!string.IsNullOrEmpty(cancel))
  {
    //update database
    Session["variable2"] = new Info(){ Text = "Do not processed"};
    return View("Cancelation");  //error stated occurs when calling another view
  }
 if(!string.IsNullOrEmpty(effective)
  {
     //do data base update
    Session["variable1"] = new Info(){ Text = "Processed"};
    return View(model); //All good here
  }
{
我有一个MVC控制器,当返回到它时,我设置了一个会话变量“variable1”,然后返回视图(model)。在这种情况下,一切都很好,我可以随时随地访问新会话变量1

但是,当我再次发回同一个控制器时,我检查单击的按钮,然后设置另一个会话变量“variable2”,这次我确实返回
视图(“取消”)

最后一个变量2已丢失,并且不会显示在应用程序中的任何位置


有人能帮助理解为什么吗

我发现,因为我使用SQL Server作为会话存储,所以我必须对对象使用Serialize()属性,然后它就工作了。

您可以发布控制器代码吗?将其作为一个答案发布,然后,在您能够的情况下,接受它,以备将来的访问者使用。