You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 3.1 Razor Page:删除后返回带更新列表的页面

解决Razor Page删除用户后返回空页面的问题

问题核心原因:执行删除的OnPostDelete方法后调用return Page(),Razor Pages不会自动触发OnGetAsync方法,导致页面绑定的UsersListModel没有被重新赋值(还是初始化的空列表),所以页面渲染时没有用户数据,显示为空。

下面提供两种可行的解决方法:

方案一:删除后手动重新加载用户列表

在OnPostDelete方法中重新获取最新的用户数据并赋值给UsersListModel,这样返回页面时模型就有更新后的内容:

修改UserList.cshtml.cs中的OnPostDelete方法:

public async Task<IActionResult> OnPostDelete(string userId)
{           
    var result = await _userService.Delete(userId);
    if (!result.Succeeded)
    {
        throw new InvalidOperationException($"Unexpected error occurred deleting user with ID '{userId}'.");
    }            
    // 重新加载最新用户列表
    var users = await _userService.GetUsers.ToListAsync();
    var userViewModel = new List<UserViewModel>();
    foreach (ApplicationUser user in users)
    {
        var thisViewModel = new UserViewModel();
        thisViewModel.UserId = user.Id;
        thisViewModel.Email = user.Email;
        thisViewModel.FirstName = user.FirstName;
        thisViewModel.LastName = user.LastName;                
        userViewModel.Add(thisViewModel); // 注意:原代码此处为笔误,需改为userViewModel
    }
    UsersListModel = userViewModel;
    return Page();
}

注意:原OnGetAsync方法里的userModel.Add(thisViewModel)是笔误,需修正为userViewModel.Add(thisViewModel),否则会出现编译错误。

方案二:采用PRG模式重定向到当前页面

这种方法更符合Web开发的规范,避免用户刷新页面时重复提交POST请求。通过RedirectToPage()重定向到当前页面,会自动触发OnGetAsync方法重新加载最新的用户数据:

修改OnPostDelete方法:

public async Task<IActionResult> OnPostDelete(string userId)
{           
    var result = await _userService.Delete(userId);
    if (!result.Succeeded)
    {
        throw new InvalidOperationException($"Unexpected error occurred deleting user with ID '{userId}'.");
    }            
    // 重定向到当前页面,触发OnGetAsync重新加载数据
    return RedirectToPage();
}

这种方法无需重复编写加载列表的代码,逻辑更简洁,推荐使用。

内容的提问来源于stack exchange,提问作者SoftwareDveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:25:33