首页 > 解决方案 > 为什么当我不使用 ConfigureHttps 时,asp.net core 2.1 MVC 中的 TempData 为空?

问题描述

我已经测试了 TempData 用于在两个控制器之间发送数据,例如,SampleController 到 HomeController,但如果没有 ConfigureHttps,它就无法工作。但是当我标记复选框时,ConfigureHttps TempData 被正确执行。为什么?

public class HomeController : Controller
{
    public IActionResult Sample()
    {
        return View();
    }

    public IActionResult Index()
    {
        return View();
    }
}

public class SampleController : Controller
{
    public IActionResult Sample2()
    {
        TempData["Name"] = "Ali";
        TempData["Family"] = "Amiri";
        return RedirectToAction("Sample", "Home");
    }
}

此代码用于示例在 HomeController 中的操作

@{
    ViewData["Title"] = "Sample";
}

<p>@TempData["Name"]</p>
<p>@TempData["Family"]</p>

标签: c#asp.net-coreasp.net-core-2.1tempdata

解决方案


我找到了我的问题,并修复了它。我已经评论了这段代码,然后 TempData 在没有 ConfigureHttps 的情况下正常工作。

  services.Configure<CookiePolicyOptions>(options =>{
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
});

推荐阅读