Передача выбранных значений в Kendo Multiselect

Я использую Kendo MultiSelect в своем проекте mvc5. Итак, у меня есть представление с множественным выбором:

@model Library.ViewModels.Models.BookViewModel

@{
    ViewBag.Title = "Edit";
}
 <script>
            $(document).ready(function () {
                $("#multiselect").kendoMultiSelect({
                    placeholder: "--Select Public Houses--",
                    dataTextField: "PublicHouseName",
                    dataValueField: "PublicHouseId",
                    autoBind: true,
                    dataSource: {
                        transport: {
                            read: {
                                dataType: "json",
                                url: "/book/getallpublichouses"
                            }
                        }
                    }
                });
                $("#multiselect").getKendoMultiSelect().value([/* there  must be a string array of ID's of pre-selected values here*/]);
            });
        </script>

Моя модель BookViewModel выглядит так:

public class BookViewModel
    {
        public int BookId { get; set; }

        [Required(ErrorMessage = "This field is Required")]
        [StringLength(15, ErrorMessage = "Must be under 15 characters")]
        public string Name { get; set; }

        public string AuthorName { get; set; }

        [Required(ErrorMessage = "This field is Required")]
        [Range(1, 2019, ErrorMessage = "Must be between 1 and 2019")]
        public int YearOfPublishing { get; set; }

        public List<int> PubHouses { get; set; }
        public  ICollection<PublicHouseViewModel> PublicHouses { get; set; }

    }

Свойство public List<int> PubHouses { get; set; } содержит список идентификаторов, которые необходимо предварительно выбрать в kendo MultiSelect.

Итак, как я могу передать этот список int в свойстве BookViewModel.PubHouses как массив строк в kendo MultiSelect?

Вы можете преобразовать вашу собственность в массив javascript с помощью var values = @Html.Raw(Json.Encode(Model.PubHouses)). Но почему бы просто не привязать к себе модель в первую очередь с помощью @Html.ListBoxFor(m => m.PubHouses, ...)? И почему вы делаете вызов ajax для получения параметров, а не в первую очередь передаете его в представление?

user3559349 27.03.2018 09:24

извините, я новичок в javascript

Michael Kostiuchenko 27.03.2018 09:29
<script> var values = @Html.Raw(Json.Encode(Model.PubHouses)); $(document).ready(function () { $("#multiselect").kendoMultiSelect({ placeholder: "--Select Public Houses--", /*----------------------------------------------*/ } }); $("#multiselect").getKendoMultiSelect().value(values); }); </script> // Могу я сделать вот так ??
Michael Kostiuchenko 27.03.2018 09:36

Вы пробовали?

user3559349 27.03.2018 09:38

Да, но это не работает. А может я что-то не так сделал.

Michael Kostiuchenko 27.03.2018 09:40

Просмотрите результат values в консоли - это будет массив идентификаторов, которые вы сказали, что хотите

user3559349 27.03.2018 09:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
744
0

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