Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 剑道自动完成显示两个建议列表_Asp.net Mvc_Kendo Ui_Kendo Asp.net Mvc_Kendo Autocomplete - Fatal编程技术网

Asp.net mvc 剑道自动完成显示两个建议列表

Asp.net mvc 剑道自动完成显示两个建议列表,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,kendo-autocomplete,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,Kendo Autocomplete,我的剑道自动完成控件成功检索Json列表。不幸的是,它两次调用MVC控制器方法并创建两个建议列表。重复列表直接显示在第一个列表的后面。当从第一个建议列表中选择一个值时,该列表将消失,但重复列表仍然可见。我正在使用自动完成控件的包装器,如下所示。我已经确认该控件没有在任何页面脚本中被引用。该控件位于一次添加到cshtml视图的局部视图中(@{Html.RenderPartial(“\u AddLineItem”);}) 生成的HTML显示建议列表两次,但关联的输入控件只存在一次。以下标记在生成的H

我的剑道自动完成控件成功检索Json列表。不幸的是,它两次调用MVC控制器方法并创建两个建议列表。重复列表直接显示在第一个列表的后面。当从第一个建议列表中选择一个值时,该列表将消失,但重复列表仍然可见。我正在使用自动完成控件的包装器,如下所示。我已经确认该控件没有在任何页面脚本中被引用。该控件位于一次添加到cshtml视图的局部视图中(
@{Html.RenderPartial(“\u AddLineItem”);}

生成的HTML显示建议列表两次,但关联的输入控件只存在一次。以下标记在生成的HTML中有两次(这些是建议列表的标记,它们还包含li标记和结束div标记,从下面粘贴的HTML中删除):



有人知道这里发生了什么吗?

根据我添加的评论,答案是避免将剑道自动完成控件放在JQuery UI对话框控件中。该对话框强制自动完成控件在浏览器中渲染两次。我在Internet Explorer和Firefox中都证实了这一点。可以合理地假设,在其他浏览器中也会发生相同的行为。

它正在调用控制器?我认为
ServerFiltering(false)
不会允许这种情况发生。您使用的JQuery版本是什么,如果不是正确的建议JQuery版本,我也会遇到类似的问题。我们使用的是1.7.1(稍微落后一点,但网站上的其他内容需要该版本)。我相信ServerFiltering设置为false只会阻止对服务器调用新的筛选结果。我将尝试更新版本的jquery,看看它是否有效果。谢谢你的主意!更改JQuery版本并没有解决这个问题,但它确实让我想到了这里正在发生的事情。该控件位于JQuery UI对话框中。事实证明,它们导致在浏览器中创建对话框时呈现内容。这意味着在加载页面时呈现位于JQuery UI对话框中的剑道自动完成控件,然后在创建对话框时再次呈现。因此,HTML中会出现两个建议列表。我删除了JQuery对话框,并将剑道自动完成控件移动到剑道模式窗口,问题就解决了。我知道有一些幕后的事情不是你的帖子的一部分。我想也许你定义了两次数据源之类的。
@(Html.Kendo().AutoComplete()
     .Name("CategorySearch")
     .DataTextField("CategoryName")
     .Filter("contains")
     .DataSource(source =>
     {
         source.Read(read =>
         {
             read.Action("PopulateCategories", "Default");
         })
         .ServerFiltering(false);
    })
)
<div class="k-animation-container" style="left: 431.13px; top: 405.69px; width: 511px; height: 206px; overflow: hidden; padding-right: 2px; padding-bottom: 4px; padding-left: 2px; margin-left: -2px; display: none; position: absolute; z-index: 10002;">