Javascript 将ajax调用中的数据分配给array/jQuery autocomplete
我有从ajax调用返回的数据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
<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,所以我建议研究一下,我不确定这就是我想要的。