Tim*_*Tim 4 asp.net-mvc tempdata razor-pages
我有一个网站正在玩,以获取Razor Pages的困扰。我有一个奇怪的情况,我不确定正在发生什么或如何解决。我正在使用[TempData]在重定向时传递消息。该应用程序在本地完美运行。一旦发布到Azure,我将添加一个新项目并添加该项目,我被重定向到索引页面,但我从未看到TempData消息。
这是我的索引页面:
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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的创建页面:
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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
该站点在本地可用...但是不适用于发布到Azure。
任何帮助表示赞赏!
遇到同样的问题。
在天蓝色上打开流日志,并发现以下消息:
Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware:由于同意政策,Cookie'.AspNetCore.Mvc.CookieTempDataProvider'被禁止
原来,当我在脚手架上放置网站时,我剥夺了.net Core MVC应用程序中开箱即用的GDPR Cookie同意代码,该代码将在接受后创建.AspNet.Consent cookie(值为“ yes”)。
一旦创建了该cookie,TempData就开始工作。
您也可以通过将CheckConsentNeeded设置为false(如果您不受GDPR约束)来更新cookie策略选项,以不检查是否同意。
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;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |