Получить текущий входной текст в обработчике события - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь передать текущее значение ввода текста на сервер, когда пользователь нажимает кнопку. Я пробовал код ниже, но YourName было null. Почему он не обновляется?

<input type="text" bind="@YourName"  maxlength="20" />

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

@code {
    string YourName;

Я также пробовал

<input type="text" bind-value-oninput="@YourName"  maxlength="20" />

и

<input type="text" bind-value-onchange="@YourName"  maxlength="20" />

, и ни один из них не работал.

Я только что создал проект приложения Blazor по умолчанию и добавил приведенный выше код. Я пропустил метод Hello(), потому что он не важен для этого вопроса. Но в любом случае, вот git-репозиторий для полного исходного кода проекта . Изменения в FetchData.razor;Запустите проект и перейдите к «Получить данные».

1 Ответ

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

Вам нужно использовать bind-value с oninput событием

<input 
    type="text" 
    @bind-value="YOUR_VARIABLE" 
    @bind-value:event="oninput" 
    maxlength="20" 
/>

Ваша проблема в том, что вы используете @ неправильно.

Когда у вас есть свойство, которое нужно блейзоручтобы контролировать, нужно передать его с @. bind - это переменная, которой должен управлять блазор, и поэтому правильное значение равно @bind или @bind-value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...