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()属性,然后它就工作了。您可以发布控制器代码吗?将其作为一个答案发布,然后,在您能够的情况下,接受它,以备将来的访问者使用。