Как вернуться к просмотру для ConfirmEmail с помощью Web Api Asp.Net MVC? - PullRequest
0 голосов
/ 07 июня 2019

Пользователь после регистрации, он отправит электронное письмо с подтверждением на электронный адрес пользователя, введя следующий код

// POST api/Account/Register
    [AllowAnonymous]
    [System.Web.Mvc.ValidateAntiForgeryToken]
    [Route("Register")]
    public async Task<IHttpActionResult> Register(RegisterBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, PhoneNumber = model.PhoneNumber };
        IdentityResult result = await UserManager.CreateAsync(user, model.Password);
        if (!result.Succeeded)
        {
            return GetErrorResult(result);
        }
        #region Added Code for Send Email

        string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
        code = HttpUtility.UrlEncode(code);
        try
        {
            string callbackUrl = Url.Link("DefaultApi", new { controller = "Account/ConfirmEmail", userId = user.Id, code = code });
            await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
        }
        catch (Exception ex)
        {
        }
        #endregion
        return Ok();
    }

Затем пользователь получит электронное письмо

Email picture

Затем, когда пользователь щелкает изображение, он вызывает метод verifyEmail для AccountController api

[Route("ConfirmEmail")]
    [AllowAnonymous]
    [HttpGet]
    public async Task<IHttpActionResult> ConfirmEmail(string userId, string code)
    {
        if (userId == null || code == null)
        {
            return NotFound();
        }
        code = HttpUtility.UrlDecode(code);
        var result = await UserManager.ConfirmEmailAsync(userId, code);
        return Ok(result.Succeeded ? "ConfirmEmail" : "ErrorEmail");
    }

, который возвращается, как показано на рисунке ниже.

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">ConfirmEmail</string>

Примечание

Я хочу отобразить на странице просмотра.Я не хочу отображать так.

Могу ли я сделать перенаправление на другой вид контроллера, если результат будет успешным?.

...