Вернуть частичное представление из другого метода в одном контроллере - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь вернуть частичное представление (модальное) из другого метода, но я не уверен, как получить объект из модели 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);
         }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...