C# 视图刷新时不更新模型

C# 视图刷新时不更新模型,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我有一个视图来显示已登录成员分配给的组。在这种情况下,角色对应于电子邮件组 @model IEnumerable<IdentityRole> @{ ViewBag.Title = "Manage Emails"; Layout = "_Layout"; } <div class="bg-primary panel-body text-center"><h4>Email Groups</h4></div> <d

我有一个视图来显示已登录成员分配给的组。在这种情况下,角色对应于电子邮件组

@model IEnumerable<IdentityRole>

@{
    ViewBag.Title = "Manage Emails";
    Layout = "_Layout";
}

<div class="bg-primary panel-body text-center"><h4>Email Groups</h4></div>

<div class="text-danger" asp-validation-summary="ModelOnly"></div>

<table class="table table-condensed table-bordered table-bordered">
    <tr><th>Email Group</th><th>Assigned</th><th></th></tr>
    @if (Model.Count() == 0)
    {
        <tr><td colspan="4" class="text-center">No Email Groups Present</td></tr>
    }
    else
    {
        foreach (var role in Model)
        {
        <tr>
            <td>@role.Name</td>
            @if (User.IsInRole(role.Name))
            {
                <td>Yes</td>
            }
            else
            {
                <td>No</td>
            }
            <td class="text-center">
                <form asp-action="ManageDelete" asp-route-id="@role.Id" method="post">
                    @if (!User.IsInRole(role.Name))
                    {
                        <a class="btn btn-sm btn-success" asp-action="ManageEdit" asp-route-id="@role.Id">Add Me To This Group</a>
                    }
                    else
                    {
                        <button type="submit" asp-action="ManageDelete" class="btn btn-sm btn-danger"asp-route-id="@role.Id">Delete Me From Group</button>
                    }
                </form>
            </td>
        </tr>
        }
    }
</table>
在我的控制器中,我有一种允许用户从组中删除自己的方法:

        [Authorize]
        [HttpPost]
        public async Task<IActionResult> ManageDelete(string id)
        {
            AppUser user = await userManager.FindByNameAsync(User.Identity.Name);
            IdentityRole role = await roleManager.FindByIdAsync(id);
            IdentityResult result;

            if(user != null)
            {
                result = await userManager.RemoveFromRoleAsync(user, role.Name);
                if (!result.Succeeded)
                {
                    AddErrorsFromResult(result);
                }
            }

            return RedirectToAction("ManageIndex");
        }
但是,当使用此操作方法刷新上述视图时,它不会显示正确的信息。我已经检查并在数据库中更正了角色更新。如果停止调试并重新启动,视图将显示正确的信息


如何刷新视图以显示正确的信息?

角色声明存储在身份验证cookie中。因此,调用RemoveFromRoleAsync不会从当前cookie中删除声明

如果要立即查看更改,仍然需要重新生成cookie

result = await userManager.RemoveFromRoleAsync(user, role.Name);    
await _signInManager.RefreshSignInAsync(user);