Asp.net core 8 выбирает несколько с выбранным по умолчанию, не работает после обновления

Этот код для выбора нескольких с выбранными параметрами по умолчанию работал нормально на .netcore 5, но после обновления до .net 8 выбранные параметры не работали

код С#

List<int> currentContentCatIDs = itemLoc.Content.ContentCategories.Where(x => x.Category.CatTypeId == 2).Select(a => a.CatId).ToList();
if (currentContentCatIDs != null && currentContentCatIDs.Count > 0)
{
    List<SelectListItem> catsSelectList = new();
    foreach (var instructorLoc in instructors)
        catsSelectList.Add(new SelectListItem { Text = instructorLoc.Title, Value = instructorLoc.CatId.ToString(), Selected = currentContentCatIDs.Contains(instructorLoc.CatId) });

    ViewBag.MultiInstructors = catsSelectList;
}
else
    ViewBag.MultiInstructors = new SelectList(instructors, "CatId", "Title", "");

вид :

<select asp-for = "InstructorsCatIDs" asp-items = "ViewBag.MultiInstructors" class = "select2 custom-select block" multiple = "multiple"></select>

модель просмотра:

public ContentCreateDto()
{
    InstructorsCatIDs = [];
}
public int[] InstructorsCatIDs { get; set; }

отладка контроллера:

Посмотреть файл:

проверка браузера:

параметры не включены, выберите на стороне клиента при проверке элементов, но на контроллере при отладке список элементов включает выбранные параметры

Что в этом «не работает»? При отладке что конкретно выходит из строя?

David 18.06.2024 13:30

нет сбоя при отладке, объект переходит из контроллера для просмотра, бросает viewbag с выбранными параметрами, но параметры не выбираются после запуска, тот же проект хорошо работает на .net5, код не изменяется

Ahmad Alaa 18.06.2024 13:32

Какова итоговая разметка на стороне клиента для этого элемента <select> при отладке? Включают ли какие-либо элементы <option> в этой разметке атрибут selected? Когда вы отлаживаете серверный код, где вы устанавливаете это значение: Selected = currentContentCatIDs.Contains(instructorLoc.CatId) — Вы наблюдаете, чтобы это условие было истинным для какой-либо из записей? Как вы подтвердили эти вещи?

David 18.06.2024 13:35

параметры не включены, выберите на стороне клиента при проверке элементов, но на контроллере при отладке список элементов включает выбранные параметры

Ahmad Alaa 18.06.2024 13:37

я приложу изображения к вопросу, чтобы лучше описать это

Ahmad Alaa 18.06.2024 13:38

вопрос дополнен изображениями

Ahmad Alaa 18.06.2024 13:42

Не могли бы вы также прикрепить изображения выбранных опций к своему пользовательскому интерфейсу?

Early Bird 18.06.2024 14:38

вопрос обновлен

Ahmad Alaa 18.06.2024 15:03

@AhmadAlaa: Из любопытства, возможно, стоит проверить исходный источник страницы, который браузер получил с сервера, поскольку он может отличаться от текущего DOM. Если природа selected элемента(ов) изменилась после загрузки исходного исходного кода страницы, то проблема может быть совсем в другом месте. Возможно, также стоит удалить Select2 из уравнения и провести повторное тестирование, чтобы увидеть, связано ли это. И т. д.

David 18.06.2024 19:27

Я уже сделал это перед публикацией вопроса, и визуализированный чистый HTML не выбран, и обратите внимание, что если я вернусь обратно в .net6 или 5, тот же код будет работать.

Ahmad Alaa 18.06.2024 20:06

Я протестировал ваши коды, и они работают у меня на .net8. Проверьте сценарий вашей страницы или еще что-нибудь, чтобы увидеть, что меняет результат. Результат теста.

Brando Zhang 19.06.2024 09:44

проблема была в модели представления, я инициализировал массив в конструкторе, вопрос обновлен

Ahmad Alaa 19.06.2024 14:54
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
12
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема была в модели представления, я инициализировал массив в конструкторе, мне нужно было удалить этот код из модели представления.

InstructorsCatIDs = [];

Другие вопросы по теме

Как настроить поведение взаимодействия из стиля
Первый подход к базе данных без использования файла EDMX
Невозможно опубликовать приложение Maui для Windows. Ошибка: «Файл манифеста obj\Release\net8.0\staticwebassets.build.json не найден»
Параллельные задачи. Запускайте параллельные потоки, но не ждите завершения других задач и получайте последние данные из базы данных
Ошибка «МАНИФЕСТ НЕИЗВЕСТНО» при публикации стандартного веб-приложения ASP.NET Core в приложениях-контейнерах Azure
Как сделать так, чтобы журналы отображались в командной строке при использовании команды dotnet run?
Стиль .net 8 blazor navlink не работает для внешнего URL-адреса
Как мне создать проверку токена параллелизма для нескольких столбцов в таблице БД в EF Core?
«Ошибка формата exec» при запуске образа докера Arm64 с использованием dotnet
Отсутствует папка «Платформы» при настройке проекта .NET MAUI для тестирования xUnit