Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 mvc 3 带MVC的jQuery UI自动完成无法显示返回的项目_Asp.net Mvc 3_Jquery Ui_Autocomplete - Fatal编程技术网

Asp.net mvc 3 带MVC的jQuery UI自动完成无法显示返回的项目

Asp.net mvc 3 带MVC的jQuery UI自动完成无法显示返回的项目,asp.net-mvc-3,jquery-ui,autocomplete,Asp.net Mvc 3,Jquery Ui,Autocomplete,我已经在这个问题上绞尽脑汁一段时间了,我不知道我做错了什么 我对我的一个控制器进行了一个非常简单的JSON调用,我希望使用jQueryUIAutoComplete返回客户机名称和相关的ID值。我可以在Firebug中看到结果,但是自动完成总是返回一个空列表 jquery生成的列表中的项目数是正确的——例如,如果我返回了3个结果,那么我会看到包含3个空白列表项目的建议菜单。问题似乎是jquery没有正确解析我的响应 我没有在文本框上使用jqueryvalidate,这里的一些其他问题表明了这一点

我已经在这个问题上绞尽脑汁一段时间了,我不知道我做错了什么

我对我的一个控制器进行了一个非常简单的JSON调用,我希望使用jQueryUIAutoComplete返回客户机名称和相关的ID值。我可以在Firebug中看到结果,但是自动完成总是返回一个空列表

jquery生成的列表中的项目数是正确的——例如,如果我返回了3个结果,那么我会看到包含3个空白列表项目的建议菜单。问题似乎是jquery没有正确解析我的响应

我没有在文本框上使用jqueryvalidate,这里的一些其他问题表明了这一点

我正在本地运行这个程序,如果这有什么不同的话

下面是我使用的jquery/HTML:

<script src="https://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">        google.load("jquery", "1.6.4")</script>
<script type="text/javascript">        google.load("jqueryui", "1.8.16")</script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#clientEntered").autocomplete({
            source: '@Url.Action("ClientAutoSuggest", "Clients")'
        });
    });

</script>

<input type="text" name="clientEntered" id="clientEntered" />
如上所述,我确实看到Firebug中传回的结果,但生成的列表总是空的

示例-如果返回2个结果,我将在Firebug中看到2个结果:

[{"ClientID":1,"Name":"Client 1"},{"ClientID":2,"Name":"Client 2"}]
如果我查看生成的源,我会看到以下2项正确,但为空:

<ul style="z-index: 1; top: -16px; left: 0px; display: block; width: 1864px; position: relative;" aria-activedescendant="ui-active-menuitem" role="listbox" class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all"><li></li><li></li></ul>

我没有看到任何参考文献2,实际上是自动完成JS?你可能在别的地方有,但我只是想让你知道

真正的问题可能是由您的“@Url.Action”引起的。它将只执行该操作并返回结果。没有*到文本框的映射

最好的做法是只进行一个简单的Ajax调用,并在收到响应时进行映射

应该是这样的,写得很快,所以不要向我开枪,但你应该了解情况

$("#clientEntered").autocomplete({
            source: function(request,response)
            {
               $.ajax({
                 url: "/Clients/ClientAutoSuggest",
                 type:"POST",
                 dataType:"json",
                 data: { term: request.term },
                 success:function(data){
                    response($.map(data,function(item){
                      return { label: item.Name,value: item.Name, id: item.ClientId
                    }))
                 }

                })
            }
});

我没有看到任何参考文献2,实际上是自动完成JS?你可能在别的地方有,但我只是想让你知道

真正的问题可能是由您的“@Url.Action”引起的。它将只执行该操作并返回结果。没有*到文本框的映射

最好的做法是只进行一个简单的Ajax调用,并在收到响应时进行映射

应该是这样的,写得很快,所以不要向我开枪,但你应该了解情况

$("#clientEntered").autocomplete({
            source: function(request,response)
            {
               $.ajax({
                 url: "/Clients/ClientAutoSuggest",
                 type:"POST",
                 dataType:"json",
                 data: { term: request.term },
                 success:function(data){
                    response($.map(data,function(item){
                      return { label: item.Name,value: item.Name, id: item.ClientId
                    }))
                 }

                })
            }
});

非常感谢你的帮助,凯文。这似乎奏效了!非常感谢你的帮助,凯文。这似乎奏效了!
$("#clientEntered").autocomplete({
            source: function(request,response)
            {
               $.ajax({
                 url: "/Clients/ClientAutoSuggest",
                 type:"POST",
                 dataType:"json",
                 data: { term: request.term },
                 success:function(data){
                    response($.map(data,function(item){
                      return { label: item.Name,value: item.Name, id: item.ClientId
                    }))
                 }

                })
            }
});