Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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
asp.net和javascript数组的奇怪行为_Javascript_Asp.net - Fatal编程技术网

asp.net和javascript数组的奇怪行为

asp.net和javascript数组的奇怪行为,javascript,asp.net,Javascript,Asp.net,这是我先前关于VisualStudio显示“而不是”的问题的后续内容 当我运行下面的代码时,它会创建一个javascript数组,并以res[0]的形式返回,如下所示: ["Name","Name","Name"] 在visual studio中,它返回以下内容: "["Name","Name","Name"]" 当我运行代码时,这部分仍然显示周围的语音标记(AutoCompletedData): 这会导致代码无法工作。当我手动删除周围的双引号时,一切正常 我已尝试删除字符串的开始和结束部分

这是我先前关于VisualStudio显示
而不是
的问题的后续内容

当我运行下面的代码时,它会创建一个javascript数组,并以
res[0]
的形式返回,如下所示:

["Name","Name","Name"]
在visual studio中,它返回以下内容:

"["Name","Name","Name"]"
当我运行代码时,这部分仍然显示周围的语音标记(AutoCompletedData):

这会导致代码无法工作。当我手动删除周围的双引号时,一切正常

我已尝试删除字符串的开始和结束部分,但它只删除了
[
]
,这表明字符串根本没有被双引号包围。我还尝试删除所有双引号,但没有效果

有人能解释出哪里出了问题吗

var urlMethod = "/ajax.aspx/GetTeamMemberNamesList";
var params = new Object();
var result;

params.TeamID = 123;

result = SendAjaxSingleValue(urlMethod, params);
var res = result.d.split("|");

var autocompletedata = res[0];

autocompletedata.replace(/['"]+/g, '')

autocomplete(document.getElementById("rd-search-form-input"), autocompletedata );

嗯,这很烦人-这解决了我的问题:

autocomplete(document.getElementById("rd-search-form-input"), JSON.parse(autocompletedata));

为了澄清OP中的解决方案,ajax调用返回的不是数组本身,而是JSON字符串,这在从web服务器接收数据时总是如此-因此为什么
res[0]
返回为
[“Name”,“Name”,“Name”]

因此,为了将响应文本转换为实际数组,需要
JSON.parse
来执行转换

autocomplete(document.getElementById("rd-search-form-input"), JSON.parse(autocompletedata));