Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
jQuery自动完成方法没有';我不能正常工作_Jquery_Jquery Ui_Asp.net Core Mvc - Fatal编程技术网

jQuery自动完成方法没有';我不能正常工作

jQuery自动完成方法没有';我不能正常工作,jquery,jquery-ui,asp.net-core-mvc,Jquery,Jquery Ui,Asp.net Core Mvc,我正在尝试使用jQuery自动完成方法获取一个下拉列表,从API获取一个数据列表,但它似乎处于关闭状态,如有任何帮助,将不胜感激 剧本: $(document).ready(function () { $('#autocomplete2').autocomplete({ source: function (request,response) { $.ajax({ url: '/

我正在尝试使用jQuery自动完成方法获取一个下拉列表,从API获取一个数据列表,但它似乎处于关闭状态,如有任何帮助,将不胜感激

剧本:

   $(document).ready(function () {

        $('#autocomplete2').autocomplete({
            source: function (request,response) {
                $.ajax({
                    url: '/Actions/AutoComplete',
                    method: 'POST',
                    data: $("#autoCompleteForm").serialize(),
                    dataType: 'json',
                    success: function (data) {
                        response(data)
                    },
                    error: function (error) {
                        alert(error);
                    }
                })
            }
        })
    });
行动方法:

[HttpPost]
    public async Task<string> AutoComplete(string input)
    {
        BadooBot bot = new BadooBot();
        return await bot.GetCities(input, "s1:379:TRRUJxhU0MNYtOiMOOlpKwL5StwQpkOmQFtSgmOV");
    }
[HttpPost]
公共异步任务自动完成(字符串输入)
{
BadooBot=新的BadooBot();
返回等待bot.GetCities(输入,“s1:379:TRRUJxhU0MNYtOiMOOlpKwL5StwQpkOmQFtSgmOV”);
}
获取信息并将其返回的方法:

     public async Task<string> GetCities(string input, string sessionId)
            {
                MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
                HttpClient client = new HttpClient();

                var obj = JsonSerializerToObject.SerializeToObject("{\"version\":1,\"message_type\":29,\"message_id\":92,\"body\":[{\"message_type\":29,\"server_search_locations\":{\"with_countries\":false,\"query\":\"" + input + "\"}}],\"is_background\":false}");

                HttpContent content = new ObjectContent<LocationQueryModel>(obj, jsonFormatter);
                var request = new HttpRequestMessage
                {
                    RequestUri = new Uri("https://eu1.badoo.com/webapi.phtml?SERVER_SEARCH_LOCATIONS"),
                    Method = HttpMethod.Post,
                    Headers = { { "X-Session-id", "s1:134:ik5Ki4OhC0VfGpQZKjEyKMnfWfNr1aROyvPwZRYy" } },
                    Content = content

                };
                var res = await client.SendAsync(request);
                var locationResultModel = await res.Content.ReadAsStringAsync();
                var objRes = JsonConvert.DeserializeObject<LocationResultModel>(locationResultModel);

                List<LocationModel> locationModel = new List<LocationModel>();
                foreach (var item in objRes.Body)
                {
                    if (item.ClientLocations.Locations != null)
                    {
                        var locationList = item.ClientLocations.Locations;
                        foreach (var singleLocation in locationList)
                        {
                            var tempModel = new LocationModel() { City = singleLocation.City.Name, Country = singleLocation.Country.Name, Region = singleLocation.Region.Name };
                            locationModel.Add(tempModel);
                        }
                    }
                }
                return JsonConvert.SerializeObject(locationModel);
            }
公共异步任务GetCities(字符串输入,字符串sessionId) { MediaTypeFormatter jsonFormatter=新的JsonMediaTypeFormatter(); HttpClient=新的HttpClient(); var obj=JsonSerializerToObject.SerializeToObject(“{”版本\“:1,\”消息类型\“:29,\”消息id \“:92,\”正文\:[{”消息类型\“:29,\”服务器搜索位置\“:{”带国家\“:false,\”查询\“:\”+”输入+“\”}],\”是背景\“:false”); HttpContent=新的ObjectContent(obj,jsonFormatter); var请求=新的HttpRequestMessage { RequestUri=新的Uri(“https://eu1.badoo.com/webapi.phtml?SERVER_SEARCH_LOCATIONS"), 方法=HttpMethod.Post, Headers={{“X-Session-id”,“s1:134:ik5ki4ohc0vfgpqzkjeykmnffnr1aroyvpwzryy”}, 内容=内容 }; var res=await client.sendaync(请求); var locationResultModel=await res.Content.ReadAsStringAsync(); var objRes=JsonConvert.DeserializeObject(locationResultModel); 列表位置模型=新列表(); foreach(objRes.Body中的变量项) { if(item.ClientLocations.Locations!=null) { var locationList=item.ClientLocations.Locations; foreach(locationList中的var singleLocation) { var tempModel=new LocationModel(){City=singleLocation.City.Name,Country=singleLocation.Country.Name,Region=singleLocation.Region.Name}; locationModel.Add(tempModel); } } } 返回JsonConvert.SerializeObject(locationModel); } 为了更容易理解该方法,他正在调用一个api服务,检索位置,然后将位置存储在locationModel列表中并返回JSON

一切正常,但当下拉菜单出现时,它不起作用,以下是输入外观的快照和我得到的响应:

最后,输入的html本身:

<form id="autoCompleteForm">
     <input id="autocomplete2" asp-for="input" type="text" >
 </form>

好吧,我想出来了,有趣的是,我花了一整天的时间,直到我在这里问它lol,问题是我试图发送一个复杂的模型,这意味着模型有“国家”、“城市”、“地区”,所以它无法使用它,我使用字符串生成器将所有字段附加到一个字符串中,然后才将其添加到列表中,然后发送该列表

旧列表模型:

{"LocationModel":[
  { "Country":"John"},
  { "City":"Anna"},
  { "Region":"Peter"}
]}
{"LocationModel":"Country + City + Region"}
新列表模型:

{"LocationModel":[
  { "Country":"John"},
  { "City":"Anna"},
  { "Region":"Peter"}
]}
{"LocationModel":"Country + City + Region"}
所以现在它是一个简单的对象,而不是一个有字段的对象。 也许有一种方法可以按照我想要的方式去做,但是如果有人有同样的问题,这对我来说是有效的