【发布时间】:2018-11-24 16:26:30
【问题描述】:
我正在使用一个网站来了解 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();
}
}
}
}
这是我的创建页面:
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。
感谢任何帮助!
【问题讨论】:
-
您是否在 Azure 中托管 Web Farm(两个或更多实例)?如果是这样,则需要使用 Azure Redis 缓存。
-
我这不是单服务器实例...
-
您找到解决方案了吗?我在发布到 Azure 时遇到了完全相同的问题(在重定向时显示警报的 TempData 在本地可以正常工作,但在 Azure 上却不行)。
-
在使用 .NET Core 2.1 时遇到同样的问题。不知道为什么。
标签: asp.net-mvc razor-pages tempdata