首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在两个IActionresult之间共享列表

在ASP.NET Core中,可以通过多种方式在两个IActionResult之间共享列表。以下是几种常见的方法:

  1. 使用TempDataTempData是一个字典对象,用于在两个请求之间共享数据。可以将列表存储在TempData中,并在两个IActionResult之间进行传递。示例代码如下:
代码语言:txt
复制
// 在第一个IActionResult中设置TempData
TempData["MyList"] = myList;

// 在第二个IActionResult中获取TempData
var myList = TempData["MyList"] as List<MyModel>;
  1. 使用会话(Session):会话是在用户访问网站期间持久存在的数据存储机制。可以将列表存储在会话中,并在两个IActionResult之间进行传递。示例代码如下:
代码语言:txt
复制
// 在第一个IActionResult中设置会话
HttpContext.Session.Set<List<MyModel>>("MyList", myList);

// 在第二个IActionResult中获取会话
var myList = HttpContext.Session.Get<List<MyModel>>("MyList");

请注意,使用会话之前需要在Startup.cs文件的ConfigureServices方法中启用会话:

代码语言:txt
复制
services.AddSession();
  1. 使用依赖注入(DI):如果列表是在请求处理期间由服务生成的,可以将其存储在一个单例服务中,并通过依赖注入在两个IActionResult之间共享。示例代码如下:
代码语言:txt
复制
// 定义一个单例服务
public interface IMyListService
{
    List<MyModel> GetList();
    void SetList(List<MyModel> myList);
}

public class MyListService : IMyListService
{
    private List<MyModel> _myList;

    public List<MyModel> GetList()
    {
        return _myList;
    }

    public void SetList(List<MyModel> myList)
    {
        _myList = myList;
    }
}

// 在第一个IActionResult中设置列表
private readonly IMyListService _myListService;

public MyController(IMyListService myListService)
{
    _myListService = myListService;
}

public IActionResult Action1()
{
    var myList = GenerateList();
    _myListService.SetList(myList);
    return View();
}

// 在第二个IActionResult中获取列表
public IActionResult Action2()
{
    var myList = _myListService.GetList();
    return View(myList);
}

Startup.cs文件的ConfigureServices方法中注册服务:

代码语言:txt
复制
services.AddSingleton<IMyListService, MyListService>();

这些方法可以根据具体的需求选择使用。根据不同的场景,选择合适的方法来在两个IActionResult之间共享列表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenOffice.org和微软Office之间共享文档

Writer和Word之间共享文档 有了以上的设置,共享文档应该问题就比较少了。可能的困难包括插入对象和页面级别的格式化。 字符和段落格式,不论手工设置还是使用样式,通常迁移是简单的。...OOo的早期版本中,有序列表(用数字做前缀的)和无序列表(用各种符号做前缀)转换中是个问题,主要是因为它和Word无序列表中用不同的字符来做前缀。但在2.0中,这个问题基本没有。...Calc和Excel之间共享文档 这两个速算表程序之间转换问题主要是函数,基本的函数,比如SUM, AVERAGE, 和 MAX 通常没有问题。但另复杂的函数可就未必,使用之前请查阅在线帮助。...Impress和PowerPoint之间共享文档 OOo2.0中,PPT的过滤器比以前要可靠得多。比如,不能转换主幻灯片中的背景图片的毛病已经没有了。幻灯片的导出也相当可靠,虽然还需要一些实验。...最后,如果真有什么两套Office软件之间共享文档的秘诀的话,那就是:保持简单。格式越简单,就越少问题。对象,页面设置以及超出文字和段落以外的样式都可能出现问题。

2.6K70

cmake:各级子项目(目录)之间共享变量

项目目录结构如下图,facedetect和facefeature都要用到opencl中的include文件,1.2,2.0,2.1是不同的opencl版本的头文件,希望cmake创建Makefile时...,所以用set定义的变量无法共享,要用set(variable value CACHE INTERNAL docstring )这种方式定义的变量会把变量加入到CMakeCache.txt然后各级目录共享会访问到这个变量...比如: opencl下的CMakeLists.txt中定义一个变量 set(ICD_LIBRARY "${PROJECT_BINARY_DIR}/lib" CACHE INTERNAL "ICD...ICD_LIBRARY:INTERNAL=J:/workspace/facecl.prj/lib 方法二 set_property/get_property: 使用set_property实现共享变量的方法...当用set_property定义的property时,第一个指定作用域(scope)的参数设为GLOBAL,这个propertycmake运行期间作用域就是全局的。

1.7K40

使用rdesktop来Windows和Linux之间共享数据

安装 Debian发行版上,可以直接用apt-get命令安装: sudo apt-get install rdesktop 别的发行版的安装方式请参看rdesktop项目的GitHub页面:https...共享文件 一个常见的需求是Windows和Linux系统上共享文件。Samba服务可以解决这个问题,但配置比较复杂。这里我们采用rdesktop来完成这个任务。...首先在Linux系统下创建一个目录,例如:/home/username/Pictures,然后连接的时候采用-r disk选项来进行文件的共享: rdesktop -u username a.b.c.d...这里有两个地方需要注意: 命令中Linux目录的路径必须采用绝对路径,否则会出错。如上例中,将/home/username/Pictures改成~/Pictures则会报错。...设置好之后,就可以Windows和Linux之间通过Pictures目录传输和共享文件了。

4.4K10

Android通过AIDL两个APP之间Service通信

进程是程序os中执行的载体,一个程序对应一个进程,不同进程就是指不同程序,aidl实现不同程序之间的调用。   ...②主线程与子线程通信使用handler,handler可以子线程中发出消息,主线程处理消息,从而完成线程之间的通信,即使有多个线程,仍然是一个程序。   ...二、首先介绍一个App之间的Service和Activity之间的通信 【项目结构】   ? 【MyService】 【提示】   ①创建Service ?   ...三、两个App之间的Service通信 【项目结构】 ?...②跨App的MyBinder实例要通过AIDL获取,两个应用定义同样的接口的方法,通过对应的AIDL名称.Stub.asInterface方法得到binder实例,然后就和同App的myBinder使用么有区别了

1.8K31

几种多台云服务器之间共享数据的方法

我们日常的运维工作中,经常会涉及到需要在多台云服务器之间共享数据的情况。如果都在同一个局域网,那么使用 SMB/CIFS、NFS 等文件级共享协议就可以。...对象存储比较适合运行在不同服务器上的应用之间共享数据,可以通过云计算平台提供的 SDK 开发实现访问对象存储的功能。 2....如果你的多台服务器都在同一个云平台上,那么就可以考虑使用云 NAS 服务器之间共享数据。很显然,想要在不同公有云或是混合云环境中共享数据,肯定需要其他的方案。 3....虚拟专用网 当需要在多台服务器之间共享敏感数据时,公有云提供的存储服务通常不是最优选择。在这种情况下,我一般会考虑搭建虚拟专用网,将分布不同平台、不同地理位置的服务器接入到同一个虚拟的网络当中。...总结 本文主要为大家分享几种笔者实际工作中会采用的几种服务器之间共享数据的方案,从主观角度上说,对象存储和 JuiceFS 因为更简单方便,我在工作中使用的会更多一些。

7.2K21

面试官:sessionStorage可以多个Tab之间共享数据吗?

面试题是:sessionStorage可以多个选项卡之间共享数据吗? 具体面试中涉及到的一些问题与面试流程 问题1:“你知道localStorage和sessionStorage有什么区别吗?”...数据可以同一网站下的不同选项卡或窗口之间共享” // Let's try to set a name in window 1 page 1 localStorage.setItem('name', '...问题3:sessionStorage可以多个选项卡之间共享数据吗?”...那么,我们确定 sessionStorage 可以多个选项卡之间共享数据吗? 最终答案 让我们尝试再次继续执行 https://medium.com/page/1 上的一段代码。...window.sessionStorage.setItem('name', 'medium') window.sessionStorage.setItem('age', '1000') 如果sessionStorage可以不同窗口或选项卡之间共享数据

28520

【译】 ASP.NET 和 ASP.NET Core 之间共享代码

您可以共享控制器 您可以两个项目之间共享的第一件事是控制器。许多团队希望新网站与当前网站一样工作。当我们说“相同”时,我们的意思是“相同”。...如果您修复了一个项目中的错误,那么您需要相同的修复程序出现在两个站点中。确保这种行为的最简单方法之一是两个项目中共享同一个文件。...一个好的方法是创建一个部分类并将这些代码块提取到两个 Web 应用程序目标之间不同的新方法中,并使用 csproj 来控制构建项目时包含哪些文件。...再次使用相同的方法,我们可以编辑 csproj 文件以共享文件,如 _Layout.cshtml。而且,视图内部,您可以继续使用 C# 预编译器指令来使文件足够灵活以供两个项目使用。...将您的类库更改为 netstandard,以便您可以 ASP.NET 和 ASP.NET Core 之间共享代码。 您的类库构建接口中查找对 System.Web 的引用替换它们。

4.5K20

【译】 ASP.NET 和 ASP.NET Core 之间共享代码

您可以共享控制器 您可以两个项目之间共享的第一件事是控制器。许多团队希望新网站与当前网站一样工作。当我们说“相同”时,我们的意思是“相同”。...如果您修复了一个项目中的错误,那么您需要相同的修复程序出现在两个站点中。确保这种行为的最简单方法之一是两个项目中共享同一个文件。...一个好的方法是创建一个部分类并将这些代码块提取到两个 Web 应用程序目标之间不同的新方法中,并使用 csproj 来控制构建项目时包含哪些文件。...再次使用相同的方法,我们可以编辑 csproj 文件以共享文件,如 _Layout.cshtml。而且,视图内部,您可以继续使用 C# 预编译器指令来使文件足够灵活以供两个项目使用。...将您的类库更改为 netstandard,以便您可以 ASP.NET 和 ASP.NET Core 之间共享代码。 您的类库构建接口中查找对 System.Web 的引用替换它们。

4.9K30

Node.js 和 C++ 之间使用 Buffer 共享数据

使用 Node.js 开发的一个好处是简直能够 JavaScript 和 原生 C++ 代码之间无缝切换 - 这要得益于 V8 的扩展 API。... JavaScript(V8 存储单元) 和 C++(返回)之间复制所有数据花费的时间通常会牺牲首先运行 C++ 赚来的性能红利!...如果你致力于创建高吞吐量的 Node.js 应用,你应该避免花费过多的时间事件循环的数据拷贝上。 Node.js Buffer 来救命 这里有两个相关的问题。...当使用同步扩展时,除非我们不改变/产生数据,那么可能会需要花费大量时间 V8 存储单元和老的简单 C++ 变量之间移动数据 - 十分费时。...这是这两个函数的全部代码。细节对于理解扩展的 Buffer 对象不重要,包含进来是为了程序完整性。扩展程序入口会调用 do_convert。

3.4K30

陈天奇:深度学习框架之间共享张量——内存张量结构DLPack的PythonAPI来了

---- 新智元报道 来源:推特 编辑:keyu 【新智元导读】DLPack是一种开放的内存张量结构,用于框架之间共享张量,近日,开发者陈天奇更新社交媒体详细介绍了为DLPack添加PythonAPI...而DLPack,就是张量数据结构的中间内存表示标准,它是一种开放的内存张量结构,用于框架之间共享张量。 它提供了一个简单、可移植的内存数据结构: ?...DLPack使: 深度学习框架之间更轻松地共享操作员。 更容易包装供应商级别的运营商实施,允许引入新设备/操作时进行协作。...快速交换后端实现,如不同版本的BLAS 对于最终用户来说,这可以带来更多的运营商,并且可以框架之间混合使用。 ?

63330

多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时

那么,还有没有方法能在多个 exe 之间共享运行时而又不受制于系统安装的版本呢?有!...如果是“独立”,那么这几个 exe 之间的运行时不会共享,每个都占用了大量的存储空间,用来放一模一样的 .NET 运行时和库文件,而且如果放一起的话还跑不起来——就算后续修复了跑不起来的 bug,上面那个多级文件夹之间共享这些...dotnetCampus.AppHost 库 你可以 NuGet 上拿到此库:dotnetCampus.AppHost。...项目 GitHub 上开源:dotnet-campus/dotnetCampus.AppHost 使用方法 第一步: exe 入口项目上安装 NuGet 包:dotnetCampus.AppHost...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

33620

模拟ASP.NET Core MVC设计与实现

HomeController类中定义了两个合法的Action方法,其中方法Foo采用“约定路由”,而方法Bar通过标注的两个HttpGetAttribute特性注册了两个“特性路由”。...我还是利用上面演示实例来说明ActionDescriptor与路由终结点之间的映射关系。...采用约定路由的Foo方法虽然只有一个ActionDescriptor,但是注册的4个约定路由有两个与它匹配(两个必要的路由参数“controller”和“action”需要定义路由模板中),所以它也具有两个终结点..._conventionalRoutes所示的列表中。...如代码片段所示,定义IArgumentBinder中的BindAsync方法具有两个参数,一个是当前ActionContext上下文,另一个是描述目标参数的ParameterDescriptor 对象

24530
领券