Так что я думаю, что это будет просто, но я не могу заставить его работать на меня.По сути, все, что я пытаюсь сделать, это взять шаблон проекта Blazor на стороне клиента и добавить POST к нажатию кнопки, который обновляет некоторый пользовательский интерфейс на основе того, что возвращается из этого.
POST действительно выходит и получаетответ (как проверено браузером), но пользовательский интерфейс никогда не обновляется.На самом деле, насколько я могу судить, метод блокируется на неопределенный срок.
<p>@callResult</p>
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
@functions {
string callResult = string.Empty;
async void IncrementCount()
{
// Create something to send
Dictionary<string, string> values = new Dictionary<string, string>();
values.Add("hello", "world");
// Encode it
var content = new FormUrlEncodedContent(values);
// Send it
var response = await httpClient.PostAsync("http://...my url...", content);
// Read response
callResult = await response.Content.ReadAsStringAsync();
}
}
Я понимаю, что, будучи асинхронным вызовом, функция возвращается до того, как у нее появится возможность обновить пользовательский интерфейс, но я даже попытался вызвать this.StateHasChanged () или даже установить ConfigureAwait (false) и до сих пор ничего.
Я уверен, что здесь что-то не так с моим рисунком, но я просто не вижу этого.Любая помощь будет оценена.