Отправка строки после регистрации методом asp.net core - PullRequest
0 голосов
/ 07 ноября 2018

Я новичок в asp.net Core и регистрируюсь, используя Identity

Так что мой метод выглядит примерно так:

[HttpPost]
public async Task<IActionResult> Register(RegisterViewModel model)
{
    try
    {
        var user = new ApplicationUser
        {
            FirstName = model.FirstName,
            MaidenName = model.MaidenName,
            LastName = model.LastName,
            Abbreviation = model.Abbreviation,
            UserName = model.Username,
            Email = model.Email,
            Pin = model.Pin
        };

        var result = await _userManager.CreateAsync(user, model.Password);
        if (!result.Succeeded) return BadRequest();
        var userRole = await _userManager.AddToRoleAsync(user, "super-admin");
        var claims = new[]
        {
            new Claim(ClaimTypes.Role, "super-admin")
        };

        var claimResult = await _userManager.AddClaimsAsync(user, claims);

        return Ok();
    }
    catch (Exception e)
    {
        var exception = e;
        return BadRequest();
    }
}

Метод работает правильно, он успешно создает пользователя, но когда он создается, он возвращает мне пустую страницу, мой вопрос: как добавить на эту пустую страницу только ярлык с надписью «Успех»?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Поскольку вы хотите вернуть объект json, например:

{
    success: true
}

Я рекомендую создать объект для использования в методе Ok:

return Ok(new { success: true });

Тогда результат на пустой странице выглядит следующим образом:

{success:true}

Или просто строка:

return Content("Success");
0 голосов
/ 07 ноября 2018

Ну, когда вы используете

return Ok();

Вы возвращаете код HTTP 200 с нулевым телом. Это предназначено для API, а не для веб-приложений.

У вас есть несколько общих опций:

  1. Используйте AJAX для выполнения вызова вместо отправки обратно формы. В обработчике успеха вы можете решить, что делать. Таким образом вы сохраните return Ok(); как есть.
  2. Создайте представление ("RegisterSuccess.cshtml") или что-то подобное) и используйте вместо него return View("RegisterSuccess");.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...