Я пытаюсь вернуть частичное представление (модальное) из другого метода, но я не уверен, как получить объект из модели Edit User в метод RemoveUserClaim. Когда я удаляю претензию от пользователя, я хочу, чтобы она вернулась к модалу редактирования пользователя, прямо сейчас - я могу только заставить его перенаправить на домашний экран обслуживания.
[HttpPost]
public async Task<IActionResult> RemoveUserClaim(UserClaimsViewModel model, string userid, string claimtype)
{
var user = await userManager.FindByIdAsync(model.UserId);
if (user == null)
{
ViewBag.ErrorMessage = $"User with Id = {model.UserId} cannot be found";
return View("~/Views/Administration/Users/UserMaint.cshtml");
}
var claims = await userManager.GetClaimsAsync(user);
foreach (var claimtypething in claims)
{
if (claimtypething.Type == claimtype)
{
var results = await userManager.RemoveClaimAsync(user, claimtypething);
break;
}
}
//Right here is where I want to return back to EditUser's modal -----------
return PartialView("~/Views/Modals/_EditUserModalPartial.cshtml");
}
[HttpGet]
public async Task<IActionResult> EditUser(string id)
{
var user = await userManager.FindByIdAsync(id);
if (user == null)
{
ViewBag.ErrorMessage = $"User with Id = {id} cannot be found";
return View("NotFound");
}
var userClaims = await userManager.GetClaimsAsync(user);
var userRoles = await userManager.GetRolesAsync(user);
var model = new EditUserViewModel
{
Id = user.Id,
Email = user.Email,
UserName = user.UserName,
City = user.City,
};
//GET LIST OF ROLES (RoleID, RoleName)
foreach (var RoleName in userRoles)
{
//Execute identiy method to get full information for the Role and store into an object (fullroleinfo)
var fullRoleInfo = await roleManager.FindByNameAsync(RoleName);
//Store this inforamtion into the Role list in the viewmodel
var roleinfo = new EditUserViewModel.Role
{
RoleName = fullRoleInfo.Name,
RoleID = fullRoleInfo.Id
};
model.Roles.Add(roleinfo);
};
//GET LIST OF CLAIMS
foreach (var ClaimName in userClaims)
{
var fullClaimInfo = ClaimName;
var claiminfo = new EditUserViewModel.Claim
{
ClaimType = fullClaimInfo.Type,
ClaimID = fullClaimInfo.Value
};
ViewBag.ClaimType = fullClaimInfo.Type;
model.Claims.Add(claiminfo);
};
ViewBag.UserModel = model;
return PartialView("~/Views/Modals/_EditUserModalPartial.cshtml", model);
}