Передача данных от контроллера к другому контроллеру
Мой вопрос заключается в том, есть ли способ передавать данные от одного контроллера к другому, более конкретно кэш-данные, и если да, то как ?
Я построил систему, которая может создавать заказы и сохранять их в кэше, чтобы я мог отображать их в своем представлении. Теперь у меня есть второй контроллер для ViewModel, куда мне нужно перенести данные кэша.
Что я уже пробовал:
Это мой контроллер, который работает нормально. У меня есть этот кэш памяти, но он предназначен только для этого контроллера. Мне нужно передать эти данные кэша другому контроллеру.
namespace sopro.Controllers { public class BookingController : Controller { private static IMemoryCache _cache; private List<Booking> bookingsList; private List<Guid> cacheKeys; public BookingController(IMemoryCache memoryCache) { _cache = memoryCache; bookingsList = new List<Booking>(); cacheKeys = Booking.guids; } public IActionResult Index() { if (_cache != null) { foreach (Guid guid in cacheKeys) { var cacheKey = guid.ToString(); bookingsList.Add(_cache.Get<Booking>(cacheKey)); } } ViewData["bookings"] = bookingsList; return View(); } [HttpGet] public IActionResult Create() { return View(); } [HttpPost] public IActionResult Create(Booking newBooking) { if (ModelState.IsValid) { var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(100)); _cache.Set(newBooking.InstanceID.ToString(), newBooking, cacheEntryOptions); ViewBag.Success = "Booking was successfully created!"; return View(); } else { cacheKeys.Remove(newBooking.InstanceID); ModelState.AddModelError(string.Empty, "Booking was not created! Please enter correct booking details."); return View(newBooking); //return Content("Failed to create the product. Please try again"); } } } }