Маршрутизатор не может найти маршрут при отправке с параметром - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь перейти к page, используя параметр, и почему-то кажется, что он не работает.Я получаю сообщение об ошибке:

blazor.webassembly.js:1 Uncaught (in promise) Error: System.InvalidOperationException: 'Router' cannot find any component with a route for '/home/+HhbuYzG1j5j/lzjL2gUUYdA5HgM0KYVTx55NYBuYLkYyMOImyVT8627J1iRAkCxjY2ZOAtoA/PuL2dePKX8+qSngAsymb6k010UIk8IG+p7/SlX2PTKEtyVVUXWqgstdmaIn95MXyV0w1XEHYXHm3rv1L5CwIicFtg8b8Vpkng='.
  at Microsoft.JSInterop.DotNetDispatcher.InvokeSynchronously (:8300/System.String assemblyName, System.String methodIdentifier, System.Object targetInstance, System.String argsJson) <0x2a4a160 + 0x001bc> in <af36ed9192be4a95b907125ccf0c1e59>:0 
  at Microsoft.JSInterop.DotNetDispatcher.BeginInvoke (:8300/System.String callId, System.String assemblyName, System.String methodIdentifier, System.Int64 dotNetObjectId, System.String argsJson) <0x2a49d08 + 0x00088> in <af36ed9192be4a95b907125ccf0c1e59>:0 
    at endInvokeDotNetFromJS (blazor.webassembly.js:1)

Отправитель

@page "/"
@using Microsoft.AspNetCore.Blazor.Services;
@inherits AuthBase

<input type="text" bind="@Username" />
<button type="button" onclick="@AuthAsync">Authenticate</button>

Логика отправителя

 public class AuthBase : BlazorComponent {
        [Inject]
        protected IUriHelper uriHelper { get; set; }
        [Inject]
        protected AuthService authService { get; set; }


        public string Username { get; set; }
        public string url = "/home";

        public async Task AuthAsync() {
            var ticket = await this.authService.AuthenticateAsync(Username);
            if (ticket.Value == string.Empty) {
                Console.WriteLine("Ticket invalid,retry !");
                return;
            }
            var urlToSend = url + "/" + ticket.Value;
            Console.WriteLine("Sending to:" + urlToSend); 
            uriHelper.NavigateTo(urlToSend);
        }
    }

Receiver

@page "/home/{Ticket}"
@inherits HomeBase

Логика Receiver

 public class HomeBase:BlazorComponent {

    [Parameter]
    private string Ticket { get; set; }
}

Я не понимаю URL-адрес, по которому я ожидаю вызова, равен /home/[ticketvalue], и этоисправить, как вы можете видеть из ошибки.

Почему это не работает?

1 Ответ

0 голосов
/ 28 января 2019

Проблема в том, что ваше значение Ticket содержит косую черту /

...