Проблема необходимости анализа переменной c# список на jQuery
Привет,
У меня возникли проблемы с использованием переменной списка c# в jquery при использовании jQuery datepicker. ниже приведен мой код в файле. cshmtl.
Если я использую "var closedDates = [@String.Join(",", hlist)]; " ниже это не работает. но если я использую "var closedDates = ['2017/01/11', '2017/01/12'];, он работает нормально. Так что это проблема разбора, которая у меня есть. Пожалуйста помочь.
@{ List<string> hlist = new List<string>(); hlist.Add("2017/01/11"); hlist.Add("2017/01/12"); <script type="text/javascript"> $(function () { var year = (new Date).getFullYear(); $("#datepicker").datepicker({ beforeShowDay: nonWorkingDates, minDate: '+14D', maxDate: new Date(2017, 8, 30) }); function nonWorkingDates(date) { var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6; @*var closedDates = [@String.Join(",",hlist)];*@ var closedDays = [[Sunday]]; for (var i = 0; i < closedDays.length; i++) { if (day == closedDays[i][0]) { return [true]; } } var closedDates = [@String.Join(",", hlist)]; //var closedDates = ['2017/01/11', '2017/01/12']; var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(), mon = "", day = ""; for (i = 0; i < closedDates.length; i++) { m = m + 1; mon = m.toString(); if (mon.length < 2) { m = "0" + m; } day = d.toString(); if (day.length < 2) { d = "0" + d; } if ($.inArray(y + '/' + m + '/' + d, closedDates) > -1) { return [true]; } } return [false]; } }); </script> }
Что я уже пробовал:
Я также пробовал разбор как
var closedDates = '<%= this.javaSerial.Serialize(hlist) %>';но это не сработало.
Также
var closedDates = <%= this.javaSerial.Serialize(hlist) %>;не получилось.
F-ES Sitecore
javascript запускается из готового html, отправленного в браузер, он не запускается с вашей страницы cshtml. Итак, просмотрите исходный код страницы, и вы увидите что-то вроде этого;
ВАР closedDates = [2017/01/11, 2017/01/12];
Поскольку это html, который вы генерируете, вы ни в коем случае не просите свой код обернуть отдельные строки в апострофы. Измените свой код, чтобы сгенерировать список с апострофами и посмотреть, работает ли он; всегда помните, чтобы просмотреть исходный код страницы, чтобы вы могли точно видеть, какой javascript вы выполняете.
Dhyanga
Как это сделать? Я так запуталась. Было бы здорово, если бы вы привели пример. Я думал
var closedDates = [@String.Присоединиться(",", горизонтального)]; линии-добавление апострофов в списке.
Karthik_Mahalingam
Всегда использовать Ответить кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.
Dhyanga
ну ладно. Так будет и в следующий раз. Я никогда раньше не использовал комментарии, поэтому не знал этого. Что ж, спасибо, что дали мне знать.
Karthik_Mahalingam
:)