Blazor не обнаруживает Модель обновлена - PullRequest
0 голосов
/ 01 февраля 2019

У меня в настоящее время проблема, когда после того, как я получаю данные из моего API, представление все еще думает, что данные нулевые.Пожалуйста, смотрите код ниже:

Просмотр:

@if (goals == null)
{
    <Loader />
}
else if (goals.Count == 0)
{
    <div class="center-text">
        <h2>It doesn't look like you have any goals create yet!</h2>
    </div>
}
else
{
    <h1>found stuff!</h1>
}

@functions {
List<GoalViewModel> goals;

protected override async Task OnInitAsync()
{
    var token = await LocalStorage.GetItem<string>("AuthToken");
    var httpClient = HttpClientExtensions.GetAuthHttpClient(token);
    goals = await httpClient.GetJsonAsync<List<GoalViewModel>>(ClientSettings.GetHostRoot() + "/api/Goals/");
}
}

действие контроллера выглядит следующим образом (я убедился, что он вызывается правильно и возвращает данные через сеть Chrometab и fiddler):

        [HttpGet]
        public IActionResult Get()
        {
            try
            {
                var goalIndexDtos = _goalManager.GetAll(_claimResolver.User.FindFirstValue(ClaimTypes.NameIdentifier));
                var goalViewModels = Mapper.Map<List<GoalViewModel>>(goalIndexDtos);

                return Ok(goalViewModels);
            }
            catch (Exception ex)
            {
                log.Error(FormatError(nameof(GoalsController), nameof(Get), ex));
                return BadRequest(ex);
            }
        }

Моя проблема в том, что <Loader /> всегда отображается, тогда как я должен видеть <h1>found stuff!</h1>, так как мой контроллер возвращает данные соответствующим образом, а код представления Blazor успешно десериализует данные.

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

Я даже вставил строку Console.WriteLine(goals.Count); после вызова, чтобы получить цели с сервера, и он правильно печатает1 к консоли.

ОБНОВЛЕНИЕ: поиграв со всем, что я мог придумать, я удалил все данные из таблицы БД, из которой goals извлекается.это возвращает пустой список от моего контроллера.В этом случае <h2>It doesn't look like you have any goals create yet!</h2> печатает как положено!ОДНАКО, когда я добавляю строку и возвращается список с номером 1, все, что я получаю, это загрузчик

РЕШЕНО: После очистки, сборки, перестройки и закрытия / открытия Visual Studio несколько раз моя проблема осталась.Только после перезапуска моей машины это начало работать как ожидалось.

...