TempData является нулевым после перенаправления - PullRequest
0 голосов
/ 13 октября 2019

Я хочу использовать TempData для передачи сообщений между действиями Test1 и Test2, но когда я читаю ключ tempdata для действия Test2, значение для ключа TempData равно нулю. Я прочитал документацию о TempData на MDSN, вот что она говорит:

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

Мой кодчто:

public class TestController : Controller
{
    public const string TEMP_DATA_KEY = "TEST";
    public IActionResult Test1()
    {
        TempData[TEMP_DATA_KEY] = "ciao";
        return RedirectToAction(nameof(Test2));
    }
    public IActionResult Test2()
    {
        TempData.TryGetValue(TEMP_DATA_KEY, out object saluto);
        return View();
    }
}

Что не так, Test1 является первым запросом Test2 является следующим запросом, почему TempData имеет значение null?

С уважением

1 Ответ

0 голосов
/ 13 октября 2019

В вашем контроллере обновите действие Test2, как указано ниже:

    public const string TEMP_DATA_KEY = "TEST";
    public IActionResult Test1()
    {
        TempData[TEMP_DATA_KEY] = "ciao";
        return RedirectToAction(nameof(Test2));
    }
    public IActionResult Test2()
    {
        TempData.TryGetValue(TEMP_DATA_KEY, out object saluto);
        return View(saluto);
    }

Обновите представление (Test2.cshtml), как показано ниже.

@model string
@{
    ViewData["Title"] = "Test2";
}

<h1>@Model</h1>

Это покажет значение, которое выдобавлен в Test1 в ваши TempData в теге h1 в представлении Test2.

...