发布到Azure时TempData无法正常工作

编程入门 行业动态 更新时间:2024-10-28 14:34:59
本文介绍了发布到Azure时TempData无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个网站正在玩,以获取Razor Pages的困扰.我有一个奇怪的情况,我不确定正在发生什么或如何解决.我正在使用[TempData]在重定向时传递消息.该应用程序可在本地完美运行.一旦发布到Azure,我将添加一个新项目并添加该项目,我被重定向到索引页面,但我从未看到TempData消息.

I have a site I'm playing with to get the hang of Razor Pages. I have a weird situation I'm unsure what is happening or how to resolve. I'm using [TempData] to pass a message on redirect. The app works perfectly locally. Once published to Azure I add a new item and the item is added, I'm redirected to the index page but I never see the TempData message.

这是我的索引页面:

public class IndexModel : PageModel { private readonly TheFishRoom_MVC_Core.Data.FishRoomDbContext _context; public IndexModel(TheFishRoom_MVC_Core.Data.FishRoomDbContext context) { _context = context; } public IList<Coral> Coral { get; set; } [TempData] public string Message { get; set; } public bool ShowMessage => !string.IsNullOrEmpty(Message); public async Task OnGetAsync(string searchString) { if (!String.IsNullOrEmpty(searchString)) { Coral = await _context.Corals.Where(s => s.Name.Contains(searchString)).ToListAsync(); } else { Coral = await _context.Corals.ToListAsync(); } } } }

这是我的创建页面:

namespace TheFishRoom_MVC_Core.Pages.Corals { [Authorize(Roles = "Admin")] public class CreateModel : PageModel { private readonly FishRoomDbContext _context; public CreateModel(FishRoomDbContext context) { _context = context; } public IActionResult OnGet() { return Page(); } [BindProperty] public Coral Coral { get; set; } [TempData] public string Message { get; set; } public async Task<IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return Page(); } _context.Corals.Add(Coral); await _context.SaveChangesAsync(); Message = "New Coral created successfully!"; return RedirectToPage("./Index"); } } }

该站点在本地可用...但是不能发布到Azure.

Locally the site works... but not with published to Azure.

本地结果:

感谢您的帮助!

推荐答案

遇到同样的问题.

在azure上打开流式日志,并发现以下消息:

Turned on streaming logs on azure and found the following message:

Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware:Cookie".AspNetCore.Mvc.CookieTempDataProvider"由于同意政策而被禁止

Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware: Cookie '.AspNetCore.Mvc.CookieTempDataProvider' suppressed due to consent policy

结果是,当我在脚手架上放置网站时,我剥离了GDPR Cookie同意代码,该代码在 Core MVC应用程序中立即可用,该代码将在接受后创建.AspNet.Consent cookie(值为"yes")

Turns out when I was scaffolding my site I stripped the GDPR Cookie Consent code that comes out of the box in Core MVC apps that will create the .AspNet.Consent cookie (with a value of "yes") when accepted.

创建cookie后,TempData开始工作.

Once that cookie was created, TempData started working.

如果您不受GDPR的约束,还可以通过将CheckConsentNeeded设置为false来更新cookie策略选项,以不检查是否同意.

You can also update the cookie policy options to not check for consent by setting CheckConsentNeeded to false if you are not subject to GDPR.

services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => false; options.MinimumSameSitePolicy = SameSiteMode.None; });

更多推荐

发布到Azure时TempData无法正常工作

本文发布于:2023-11-16 02:06:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1600019.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法正常   工作   Azure   TempData

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!