В javascript я хочу сравнить выбранное значение из раскрывающегося списка со списком значений из моего кода C#. Я пробовал передать список строк через HiddenField, но не могу обойти проблему «Невозможно получить свойство« разделить »на неопределенную или нулевую ссылку».
Глядя на Stackoverflow и в других местах, я пробовал много вариантов следующего кода, но «ошибка разделения» меня загнала в тупик.
<asp:HiddenField ID = "HiddenFieldList" runat = "server" />
//Code behind:
HiddenFieldList.Value = String.Join(",", ValuesList);
//javascript
var CSVList = document.getElementById("HiddenFieldList").value;
var HFList = [];
HFList = this.CSVList.split(',');
// hoping to get to here...
for(i = 0; i < HFList.length; i++)
{
if (DDL == HFList[i])
{
do stuff ;
break ;
}
}
Или ... вместо того, чтобы назначать список строк моему скрытому полю, я должен передать массив ?? Fwiw - проект не MVC.
Обновлено: мой список кода основан на значениях в столбце с данными.
Пожалуйста, посмотрите мою правку - нижнюю строку.
пожалуйста, добавьте свою разметку для бритвы
Пожалуйста, посмотрите мои правки
Измените свой код this.CSVList.split (‘,’) на CSVList.split, просто удалите это.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Измените следующую строку кода
HFList = this.CSVList.split(',');
к
HFList = CSVList.split(',');
потому что CSVList - это локальная переменная.
Теперь он работает, как ожидалось. Что расстраивает, так это то, что я ранее пробовал тот же текст, что и вы, - и все равно получил ошибку. Спасибо за ваше время.
На вашей странице ASP.NET на стороне сервера просто сгенерируйте связку текста, которая начинается с
<script>, заканчивается на</script>и содержит внутриvar theArray = [...]'. На стороне клиента вы получитеtheArrayв качестве локальной переменной.