0x800a01b6-JavaScript运行时错误:对象不存在';t支持属性或方法';forEach&x27;
有两个下拉列表。一个是类别,另一个是子类别。一旦我在下拉列表中选择了一个类别,我将触发一个JS,它将为所选类别带来所有子类别。我得到了值,但是当试图绑定数组数据时,我得到了错误 对象不支持属性或方法“forEach” 模型 ajax方法的成功调用了dropdown的绑定0x800a01b6-JavaScript运行时错误:对象不存在';t支持属性或方法';forEach&x27;,javascript,jquery,asp.net-mvc,asp.net-core,asp.net-ajax,Javascript,Jquery,Asp.net Mvc,Asp.net Core,Asp.net Ajax,有两个下拉列表。一个是类别,另一个是子类别。一旦我在下拉列表中选择了一个类别,我将触发一个JS,它将为所选类别带来所有子类别。我得到了值,但是当试图绑定数组数据时,我得到了错误 对象不支持属性或方法“forEach” 模型 ajax方法的成功调用了dropdown的绑定 categoryLookupReceived= function (data, additionalData) { debugger; bindMultiSelectDropdown($("#SubCategoryDDL"),
categoryLookupReceived= function (data, additionalData) {
debugger;
bindMultiSelectDropdown($("#SubCategoryDDL"), data);}
bindMultiselectDropdown函数如下图所示,其中我在使用foreach时遇到了错误
function bindMultiSelectDropdown(dropdown, arrDataSource, firstItem) {
var dataSource = [];
if (firstItem != undefined) dataSource.push(firstItem);
if (arrDataSource != undefined) arrDataSource.forEach(function (s) { dataSource.push({ label: s.Text, value: s.Value }); });
$(dropdown).multiselect('dataprovider', dataSource);}
让我知道我犯了什么错误。这说明
数据
不是一个数组或另一种具有forEach
的对象。它很可能是具有具有数组的数据
(或d
)属性的对象。OWASP指南不鼓励使用顶级数组(而不是对象)返回JSON资源,因此人们通常使用单个属性将数组包装在对象中。查看您的网络选项卡以查看回复帖子时返回的内容。可能arrDataSource
不是数组。请使用Object.values(arrDataSource)。forEach
@SajeebAhamed No,它不起作用。我得到了相同的错误。@T.J.Crowder将arrDataSource中的值传递到空数组数据源的最佳方法是什么。这告诉您,数据
不是数组或具有forEach
的另一种对象。它很可能是具有具有数组的数据
(或d
)属性的对象。OWASP指南不鼓励使用顶级数组(而不是对象)返回JSON资源,因此人们通常使用单个属性将数组包装在对象中。查看您的网络选项卡以查看回复帖子时返回的内容。可能arrDataSource
不是数组。请使用Object.values(arrDataSource)。forEach
@SajeebAhamed No,它不起作用。我得到了相同的错误。@T.J.Crowder将arrDataSource中的值传递到空数组DataSource中的最佳方法是什么。
$(document).ready(function () {
$('#Category').change(function () {
debugger;
var selectedCategory = GetSelectedItemFromDropDown('#Category');
if (selectedCategory!= undefined && selectedCategory.length == 1) {
var req = { SelectedCategory: selectedCategory[0] };
POST('Home/SubCategoriesLookup', JSON.stringify(req), categoryLookupReceived, errorPostback, undefined);
};
});
});
categoryLookupReceived= function (data, additionalData) {
debugger;
bindMultiSelectDropdown($("#SubCategoryDDL"), data);}
function bindMultiSelectDropdown(dropdown, arrDataSource, firstItem) {
var dataSource = [];
if (firstItem != undefined) dataSource.push(firstItem);
if (arrDataSource != undefined) arrDataSource.forEach(function (s) { dataSource.push({ label: s.Text, value: s.Value }); });
$(dropdown).multiselect('dataprovider', dataSource);}