Nano Hash - криптовалюты, майнинг, программирование

Razor Pages Net Core автоматически перезагружает частичное представление с заданной частотой

Я все еще пытаюсь разобраться с Razor Pages для Net Core и, кажется, немного застрял на этом. У меня есть свой Index.cshtml:

@page
@model IndexModel

<input type="hidden" name="hdnPageSelector" id="hdnIndexPage" />

<div class="text-center">
    <p>Welcome to</p>
    <h1 class="display-4">"My Web App"</h1>
</div>

<div class="form-row">
    <div class="form-group col-md-2">
        <partial name="IndexPartials/_Navigation" />
    </div>
    <div class="form-group col-md-1">
    </div>

    <div class="form-group col-md-6">
        <partial name="IndexPartials/_Body" />
    </div>

    <div class="form-group col-md-1">
    </div>
    <div id="refreshMembers" class="form-group col-md-2">
        <partial name="IndexPartials/_Members" />
    </div>
</div>

Обратите внимание, что последний div имеет id="refreshMembers". Частичное представление (_Members), которое загружено туда, выглядит так:

@model IndexModel
    
<label>Members</label>
<br />

@{
    foreach (ApplicationUser user in Model.AppUsersList)
    {
        if (user.IsLoggedIn)
        {
            <label>@user.FirstName @user.LastName </label>
            <span class="dot"></span>
        }
        else
        {
            <label>@user.FirstName @user.LastName</label>
        }
    }
}

В контроллере у меня есть свойство под названием:

public IList<ApplicationUser> AppUsersList { get; set; }

И это заполняется на OnGetAsync() следующим образом:

AppUsersList = _userManager.Users.OrderBy(x => x.FirstName).Where(y => y.UserName != currentUser.UserName).ToList();

Это нормально, страница загружается с заполненным частичным представлением, как и ожидалось. Теперь я хочу, чтобы партиал обновлялся каждые 5 секунд, поэтому я поставил этот фрагмент Javascript / JQuery на место:

$(function () {
    setInterval(function () {

        $("#refreshMembers").load("/Index?handler=RefreshMembers");

    }, 5000);
});

со следующей настройкой метода:

public async Task<IActionResult> OnGetRefreshMembers()
{
    var currentUser = await _userManager.GetUserAsync(User);
    AppUsersList = _userManager.Users.OrderBy(x => x.FirstName).Where(y => y.UserName != currentUser.UserName).ToList();

    return new PartialViewResult
    {
        ViewName = "_Members",
        ViewData = new ViewDataDictionary<List<ApplicationUser>>(ViewData, AppUsersList)
    };

}

Однако частичное представление не обновляется. Если я поставлю точку останова в этом методе, я вижу, что он срабатывает каждые 5 секунд, несмотря на то, что Devtools заявляет, что при каждой попытке возникает ошибка:

введите описание изображения здесь

В скорлупе я просто не могу перезагружать частичный вид каждые 5 секунд. Такое ощущение, что я близок, но просто что-то упускаю и не знаю, что это такое.


  • на сервере произошла ошибка, вам нужно заглянуть в окно Output, чтобы увидеть подробное исключение. 28.03.2021
  • Спасибо .... Я пропустил всю необходимую информацию в окне вывода! lol Долгих выходных! Я опубликую исправление ниже! 28.03.2021

Ответы:


1

Получив напоминание о необходимости проверить окно вывода в VS немного лучше, я нашел причину своих проблем ... На самом деле, две вещи. Это исправленный метод:

public async Task<IActionResult> OnGetRefreshMembers()
{
    var currentUser = await _userManager.GetUserAsync(User);
    AppUsersList = _userManager.Users.OrderBy(x => x.FirstName).Where(y => y.UserName != currentUser.UserName).ToList();

    return new PartialViewResult
    {
        ViewName = "IndexPartials/_Members",
        ViewData = new ViewDataDictionary<IndexModel>(ViewData, this)
    };
}

Где...

  1. Я не включил папку, в которой находится партиал, когда назвал ее в PartialViewResult
  2. Мне нужно вернуть весь объект IndexModel - обновив свойство AppUserList, а не только список AppUsers.
28.03.2021
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..