Передача данных между действиями контроллера - PullRequest
0 голосов
/ 26 апреля 2018

Привет, я не могу найти способ передачи данных между методами действия в одном контроллере. Пример упрощенного кода выглядит следующим образом:

public class HomeController : Controller
{
    int latestID;

    // GET: Home
    public ActionResult Index()
    {
        latestID = 50000;
        return View();
    }

    // GET: Generate
    public ActionResult Generate()
    {
        // using the latestID here 
        return View();
    }
}

Индекс загружается, когда приложение запускается, и latestID устанавливается на 50000. Но когда я нажимаю кнопку, сопоставленную с запросом API GET Generate, latestID внезапно становится нулевым. Я пытался реализовать TempData и Session, но безуспешно. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 26 апреля 2018

Я чувствую, что здесь есть 2 возможности, то есть значение, которое нужно получить, для пользовательского сеанса или его глобального для всех пользователей, использующих веб-сайт.

Если значение зависит от пользователя, то им можно управлять с помощью управления этапом сеанса, например Viewbag. Или, если предполагается, что это значение будет сохраняться только на стороне сервера, его необходимо будет снова извлечь с помощью некоторого механизма сохранения, например базы данных или кеша памяти.

Если значение является общим для всех пользователей, использующих Веб-сайт, то оно может быть достигнуто посредством внедрения зависимостей одноэлементного объекта (это может быть снова менеджер базы данных или менеджер кэша или простой объект в памяти). Статические объекты также можно использовать, но это не будет идеальным, поскольку приложение не будет поддерживать горизонтальную масштабируемость между экземплярами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...