NET Core Razor Pages中如何使用Setters扩展UserManager?

我正在使用.NET Core 2 Razor Pages和个人帐户身份验证来开发Web应用程序。


我用名字扩展数据库,因为它不是标准实现的。一切正常。但是,我想扩展我的/ Account / Manage页面,以确保用户能够更改自己的名称。


OnGetAsync可以正常工作,但是当我的OnPostAsync无法正常工作时。


OnPostAsync

 public async Task<IActionResult> OnPostAsync()

    {

        if (!ModelState.IsValid)

        {

            return Page();

        }


        var user = await _userManager.GetUserAsync(User);

        if (user == null)

        {

            throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");

        }


        if (Input.Email != user.Email)

        {

            var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

            if (!setEmailResult.Succeeded)

            {

                throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'.");

            }

        }


        if (Input.PhoneNumber != user.PhoneNumber)

        {

            var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

            if (!setPhoneResult.Succeeded)

            {

                throw new ApplicationException($"Unexpected error occurred setting phone number for user with ID '{user.Id}'.");

            }

        }


        // not working yet

        if (Input.FirstName != user.FirstName)

        {

            var setFirstNameResult = await MyManager.SetFirstNameAsync(user, Input.FirstName);


            if (!setFirstNameResult.Succeeded)

            {

                throw new ApplicationException($"Unexpected error occurred setting first name for user with ID '{user.Id}'.");

            }

        }


        StatusMessage = "Your profile has been updated";

        return RedirectToPage();

    }


当我点击“保存”按钮并告诉我我的个人资料已成功更新时,它失败了,但是没有成功。它只是保留了旧的名字值。我在这里想念什么?


慕哥6287543
浏览 145回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP