Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 将ajax调用中的数据分配给array/jQuery autocomplete_Javascript_Jquery_Ajax_Asp.net Mvc 4 - Fatal编程技术网

Javascript 将ajax调用中的数据分配给array/jQuery autocomplete

Javascript 将ajax调用中的数据分配给array/jQuery autocomplete,javascript,jquery,ajax,asp.net-mvc-4,Javascript,Jquery,Ajax,Asp.net Mvc 4,我有从ajax调用返回的数据 <script type="text/javascript"> $(function() { var result = null; $.ajax({ beforeSend: function () { alert("Testing"); }, url: "FacilitiesAsync", success: function (da

我有从ajax调用返回的数据

<script type="text/javascript">
    $(function() {
       var result = null;
       $.ajax({
        beforeSend: function () {
            alert("Testing");
        },
        url: "FacilitiesAsync",
        success: function (data) {
            result = data;
        },
        complete: function () {
            alert(result);
        }
    });
  });
  </script>

@using (Html.BeginForm()) {

    <div class="ui-widget">
        <label for="tags">Tags: </label>
        <input id="tags" />
     </div>
}

$(函数(){
var结果=null;
$.ajax({
beforeSend:函数(){
警报(“测试”);
},
url:“设施同步”,
成功:功能(数据){
结果=数据;
},
完成:函数(){
警报(结果);
}
});
});
@使用(Html.BeginForm()){
标签:
}
我希望获取分配给结果变量的数据,并将这些数据放在jquery自动完成输入控件中。下面是我的原始帖子,你可以看到我是如何获得数据的。我得到了Facility类型的列表,这是我的自定义类。该数据是一个键值对数组


你可以这样做

$.ajax('@Url.RouteUrl("DefaultApi", new {httproute = "", controller = "Company"})').done(function(data) {
                $("#yourinput").autocomplete({
                    source: function(request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
                        response($.grep(data, function(value) {
                            value = value.label || value.value || value;
                            return matcher.test(value) || matcher.test(normalize(value));
                        }));
                    }
                });
            });

大约一周前,我就是这样让它工作的,所以我想你应该也这样

你在ajax调用中收到了什么样的数据?我在警报:System.Collections.Generic.List`1[Models.Facility]中看到了这一点,我要冒险说,你现在知道你的问题的主要部分。您将向客户端返回一个列表,但javascript不支持我认为类似C#的数据结构。您要做的是将列表转换为json,这样您就可以遍历它。是的,这就是我现在正在尝试做的。我才知道这就是我要做的。我的局部变量_facility可以被迭代,我可以得到如下值:_facility[0]。例如FacilityName。我会更新上面的代码。我仍然需要弄清楚如何将这些数据作为数组的源,这是autocomplete在输入控件中使用的。我对C#不太了解,但快速查看一下您的代码会让我对您的实际操作感到有点困惑。在我看来,在代码中,您创建了一个返回的设施列表,然后尝试转录到另一个设施列表中。除非我遗漏了什么,为什么不使用你返回的列表,而不是加倍你的工作?另外,C#中应该有一个函数将列表转换为json,所以我建议研究一下,我不确定这就是我想要的。