Параметр 'expression' должен иметь значение IEnumerable, если разрешен множественный выбор - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь вернуть MultiSelectList в представление, и в то же время выбранное совпадение совпадает с сохраненными в настоящее время идентификаторами.

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

В моем классе у меня есть

public MultiSelectList ListOfNaceCodesUpdate { get; set; }

Контроллер у меня есть

 List<string> codeIds = new List<string>();

                //Get current list of Ids in database
                foreach (var item in model.NaceCodes.Split('\n'))
                {
                    codeIds.Add(item);
                }

                List<string> arrayNaceToString = codeIds;

                var cmsGenericText = UmbracoAssignedContentHelperClass.PageContentByAlias("introduction");

                var returnNaceCodes = cmsGenericText.GetPropertyValue<IEnumerable<IPublishedContent>>("displayNaceCodes");

                List<GenericContent.TextValueViewModel> naceCodes = new List<GenericContent.TextValueViewModel>();
                //Get full list of codes
                foreach (var data in returnNaceCodes.ToContentSet())
                {
                    naceCodes.Add(new GenericContent.TextValueViewModel(text: data.GetPropertyValue<string>("category", string.Empty), value: data.GetPropertyValue<string>("code", string.Empty)));
                }

                MultiSelectList list = new MultiSelectList(naceCodes, "Text","Value",arrayNaceToString.ToArray());

                model.ListOfNaceCodesUpdate = list;

В представлении Iесть

@Html.ListBoxFor(x => x.NaceCodes, new MultiSelectList(Model.ListOfNaceCodesUpdate,"Value","Text"), new { @class = "form-control", multiple = "multiple" })

Но я продолжаю получать:

Параметр 'expression' должен иметь значение IEnumerable, когда допускается несколько выборок.

I

SelectedValues ​​не работает в MultiSelectList mvc *. *1020**1022* *1023**1024* SelectedValues ​​не работает1025 *

Как я могу создать список выбора с несколькими выбранными значениями?

Но не могу с этим разобраться

enter image description here

1 Ответ

0 голосов
/ 11 апреля 2019

Это имеет большой смысл. Текущие выбранные элементы (или элементы) должны быть прочитаны из expression. Чтобы облегчить это для множественного выбора, expression должен возвращать IEnumerable, чтобы можно было прочитать несколько элементов, которые уже могли быть выбраны из него.

Похоже, что ваше свойство NaceCodes - это просто строка, использующая какой-то произвольный символ-разделитель внутри нее. Можете ли вы сделать это IEnumerable некоторого типа вместо этого - например, List<String> или String[]?

В качестве альтернативы, вы не могли бы иметь непосредственное отношение к свойству и вместо этого использовать ListBox() вместо ListBoxFor(). Это, вероятно, менее предпочтительно, потому что вы, вероятно, хотите, чтобы выбранные элементы были правильно привязаны к модели при последующей публикации страницы, и свойство IEnumerable, вероятно, является наиболее простым вариантом для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...