在ASP.NET Core中,可以通过多种方式在两个IActionResult
之间共享列表。以下是几种常见的方法:
TempData
:TempData
是一个字典对象,用于在两个请求之间共享数据。可以将列表存储在TempData
中,并在两个IActionResult
之间进行传递。示例代码如下:// 在第一个IActionResult中设置TempData
TempData["MyList"] = myList;
// 在第二个IActionResult中获取TempData
var myList = TempData["MyList"] as List<MyModel>;
IActionResult
之间进行传递。示例代码如下:// 在第一个IActionResult中设置会话
HttpContext.Session.Set<List<MyModel>>("MyList", myList);
// 在第二个IActionResult中获取会话
var myList = HttpContext.Session.Get<List<MyModel>>("MyList");
请注意,使用会话之前需要在Startup.cs
文件的ConfigureServices
方法中启用会话:
services.AddSession();
IActionResult
之间共享。示例代码如下:// 定义一个单例服务
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
方法中注册服务:
services.AddSingleton<IMyListService, MyListService>();
这些方法可以根据具体的需求选择使用。根据不同的场景,选择合适的方法来在两个IActionResult
之间共享列表。
领取专属 10元无门槛券
手把手带您无忧上云