Вы должны помочь себе с небольшим JavaScript. По сути, он будет использовать JSRuntime (правильный способ связи между Blazor и JS) для отправки измененных данных обратно в представление. Возможно, это не совсем то, как это работает под капотом, но вы должны понять: -)
- Edit.cs html:
a) Добавить скрытый элемент где-то в разделе формы:
<input type="hidden" asp-for="Name" id="Name" />
b) Добавьте немного JS внизу Edit.cs html. Эта функция будет получать данные из компонента Blazor и передавать их элементу ввода.
<script>
window.updateUserName = function (userName) {
document.getElementById('Name').value = userName;
}
</script>
В EditUser.razor:
a) Некоторые изменения в элементе ввода - должны выглядеть следующим образом:
<input class="form-control" @onchange="async (e) => { User.Name = e.Value.ToString(); await UpdateUserName(); }" value="@User.Name" />
Это позволяет вызывать пользовательский код для отправки измененных данных обратно. для просмотра, используя метод, упомянутый ниже.
б) В разделе @code:
public async Task UpdateUserName()
{
await JSRuntime.InvokeVoidAsync("updateUserName", User.Name);
}
И это все. Надеюсь, это поможет.