Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
0x800a01b6-JavaScript运行时错误:对象不存在';t支持属性或方法';forEach&x27;_Javascript_Jquery_Asp.net Mvc_Asp.net Core_Asp.net Ajax - Fatal编程技术网

0x800a01b6-JavaScript运行时错误:对象不存在';t支持属性或方法';forEach&x27;

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"),

有两个下拉列表。一个是类别,另一个是子类别。一旦我在下拉列表中选择了一个类别,我将触发一个JS,它将为所选类别带来所有子类别。我得到了值,但是当试图绑定数组数据时,我得到了错误

对象不支持属性或方法“forEach”

模型

ajax方法的成功调用了dropdown的绑定

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);}