Как вызвать метод с другой страницы Razor? - PullRequest
0 голосов
/ 13 июля 2020

Это структура моего приложения, и я хочу вызвать метод в Login.cs html из класса ExternalLogins.cs html .cs. Как я могу это сделать? Некоторые asp помощники?

Вход в систему так же, как ExternalLogins - это RazorPage - без класса контроллера.

Редактировать: @ mj1313 Я добавил этот код:

<div class="col">
    <h3>Zaloguj się przez:</h3>
    @{
        if (Model.ExternalLogins.Count == 0)
        {
            <div>Brak możliwości zalogowania przez serwisy zewnętrzne.</div>
        }
        else
        {
            <form method="post" 
                  asp-page="./Manage/ExternalLogins" 
                  asp-page-handler="LinkLogin" 
                  asp-route-returnUrl="@Model.ReturnUrl">
                  <div>
                      @foreach (var provider in @Model.ExternalLogins)
                      {
                          <button type="submit" 
                                  class="btn btn-primary" 
                                  name="provider" 
                                  value="@provider.Name" 
                                  title="Zaloguj się za pomocą konta 
                                  @provider.DisplayName">
                              @provider.DisplayName
                          </button>
                      }
                  </div>
            </form>
        }
    }
</div>

Но мое действие в ExternalLogins не вызывается

        public async Task<IActionResult> OnPostLinkLoginAsync(string provider)
{
    // Clear the existing external cookie to ensure a clean login process
    await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

    // Request a redirect to the external login provider to link a login for the current user
    var redirectUrl = Url.Page("./ExternalLogins", pageHandler: "LinkLoginCallback");
    var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl, _userManager.GetUserId(User));
    return new ChallengeResult(provider, properties);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...