Blazor: Строковый литерал в коде обработчика событий? - PullRequest
0 голосов
/ 08 октября 2019

Допустим, я добавил в файл WeatherForecastService.cs следующее:

    public string Hello(string name)
    {
        return $"Hello, {name}!";
    }

Как передать ему "World"? Все примеры, которые я мог найти, были вызовом методов, которые не имеютаргументы, поэтому они не помогли. Я пробовал следующее:

<button @onclick="() => { Message = ForecastService.Hello(world); }">Click</button>

-> вызывает ошибку 'undefined', конечно.

<button @onclick="() => { Message = ForecastService.Hello('world'); }">Click</button>

-> вызывает 'слишком много символов'error.

<button @onclick="() => { Message = ForecastService.Hello(\"world\"); }">Click</button>

-> вызывает много ошибок.

1 Ответ

2 голосов
/ 08 октября 2019

Есть несколько ответов здесь для этого на сайте Blazor GitHub. Этот ответ работал для меня.

По сути, вам нужно добавить @(...) вокруг вашей лямбды:

<button @onclick="@(() => { Message = ForecastService.Hello('world'); })">Click</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...