Blazor Web Assembly перенаправляет на контроллер - PullRequest
0 голосов
/ 21 апреля 2020

Я использую Blazor Web Assembly, используя ASP. NET WebHosting. Итак 2 проекта Клиент и Сервер. Они запускают https://localhost: 4000

Рассматривая пример FetchData, который вызывает API для WeatherForecasts и адрес которого https://localhost: 4000 / WeatherForecasts

Я создаю интеграцию со сторонним поставщиком (пример xero), поэтому в приложении проекта сервера есть контроллер XeroAuthController. Действие «Подключить» отправляет URL-адрес для перенаправления. Если я наберу https://localhost: 4000 / XeroAuth / Connect . Я получаю страницу не найдена.

Я добавил атрибут [Route ("[controller]")] в XeroAuthController

Что мне нужно сделать, чтобы добавить маршрут в известные маршруты на стороне клиента?

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете попробовать, как показано ниже.

Создать уровень сервиса в вашем клиентском проекте.

Добавить - Класс интерфейса и реализации

Интерфейс -

public interface IXeroAuth
{
  Task XeroConnect(); //you can pass  parameter or object if required here
}

Реализация -

public class XeroAuth : IXeroAuth
{
  private readonly IHttpService httpService;
  private string url = "api/XeroAuth"; // XeroAuth is Controller name

  public XeroAuth(IHttpService httpService)
  {
        this.httpService = httpService;
  }

  public async Task XeroConnect()
    {
        // POST OR GET etc.. it depends how your controller is defined
        var response = await httpService.Post(url); 

        //Handle response here
    }
}

Пример контроллера

[Route("api/[controller]")]
[ApiController]
public class XeroAuth: ControllerBase
{
  //Your code here which will handle connect request..
}

Надеюсь, это поможет.

...