这里是简化的后端代码:
我卡在了正确地重定向用户上。如果我不返回
如果我使用
[BindProperty(SupportsGet = true)]
public int ProductId { get; set; }
public Product Product { get; set; }
public void OnGet()
{
Product = ProductService.Get(ProductId)
}
public IActionResult OnPost()
{
if (!User.Identity.IsAuthenticated)
{
retrun Redirect("/login");
}
// Add product to user favorite list
// Then how to redirect properly to the same page?
// return Redirect("/product") is not working
// Calling OnGet() does not work
}
以下是相应的简化Razor页面:
@page "/product/{id}"
@model Product
<div>
@Model.Title
</div>
我卡在了正确地重定向用户上。如果我不返回
IActionResult
,那么我的 Redirect("/login")
就无法工作,并且我会得到 @Model.Title
的空引用异常。如果我使用
IActionResult
,那么我的 Redirect("/login")
就可以工作了,但是当用户登录并将产品添加到收藏夹后,我的代码在将用户重定向回同一页时失败了,并且 OneGet
没有被调用。