首页 > 解决方案 > 在 Dotnet Core 3.1 中将数据从一个控制器传递到另一个控制器

问题描述

我是整个 MVC 模式的新手,遇到以下问题:

我有 2 个控制器,PayReqController并且PayResController. 我正在尝试从一个动作访问数据PayReqController到另一个动作PayResController。我试过使用TempData

TempData["tsnpac"] = tsnpac; 

但它不起作用,因为我们需要在设置TempData. 还尝试使用 sessionSession["TSNPAC"] = "TSNPAC";将其访问到另一个控制器,但它给出的值为null.

我的场景是,PayReqController在一个动作中,我有一个值,我需要在另一个控制器中获取它而不重定向到该控制器,因为我的用例是重定向到我从其他服务获得的其他 URL。

标签: c#asp.net-mvcasp.net-core.net-core

解决方案


要在请求范围之间(不仅仅是控制器之间)共享数据,您可以使用HttpContext.Items.

共享数据:

//in the  first controller 

HttpContext.Items.Add("person", person);

并使用共享数据:

//in the second controller

var person= HttpContext.Items["person"] as Person;

推荐阅读