【问题标题】:TempData isn't persisting data on Production Server [ASP.NET CORE 2.1]TempData 不在生产服务器 [ASP.NET CORE 2.1] 上保留数据
【发布时间】:2018-10-01 16:35:25
【问题描述】:

我有一个问题,我搜索了文档以查看可能是我犯了错误或其他问题,但没有找到我正在寻找的答案。我的问题是,保存产品后,我使用 PRG(Post-Redirect-Get) 模式,因此用户在按下浏览器后退按钮时不会重新提交表单。我使用 TempData 显示一次性消息,因为它在删除之前将数据保留到下一个请求。此方法在我的开发环境中运行良好。但是在我将应用程序部署到生产服务器后,虽然操作方法遵循 PRG 模式并成功返回,但 TempData 没有持久化,也没有显示消息。

这是我显示消息的方式:

@if (TempData["Message"] != null)
{
    var message = JsonConvert.DeserializeObject<MessageModel>(TempData["Message"].ToString());
<div class="alert bg-@message.Class text-center alert-dismissible fade show fixed-bottom w-100" role="alert" style="margin:0">
    <h6 class="text-white">@message.Message</h6>
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
    </button>
</div>
}

这里是方法示例:

[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(Product model)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var product = await _productRepository.GetProductAsync(model.ID);


        product.Name = model.Name; product.ProductCode = model.ProductCode; product.Category = model.Category;
        product.Description = model.Description;
        await _productRepository.UpdateAsync(product);

        TempData["Message"] = JsonConvert.SerializeObject(new MessageModel { Class = "success", Message = "Product has been successfully updated" });
        return RedirectToAction("Edit", new { id = model.ID });
    }

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: asp.net asp.net-core-mvc-2.1


    【解决方案1】:

    好吧,由于 Asp.net Core 中的通用数据保护条例支持,如果用户(在本例中为我)尚未同意数据收集并且应用程序已将 CheckConsentNeeded 设置为 true,则所有非必要的 cookie(TempData , 会话 cookie) 不会发送到浏览器。 TempData 和 Session cookie 需要在它们起作用之前启用跟踪。因此解决方案是实现 cookieConsentPartial 文件并通过单击确定同意或将 checkConsentNeeded 设置为其默认值,即 false。你可以在这里阅读更多EU General Data Protection Regulation (GDPR) support in ASP.NET Core

    【讨论】:

      猜你喜欢
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 2019-07-27
      • 2011-02-12
      • 2015-02-14
      • 1970-01-01
      相关资源
      最近更新 更多