我在我的ASP.NET站点中使用了一个自动完成的jquery插件,而且我似乎无法跟踪我在这个新站点上做错了什么。请注意,我有这个100%的工作在我的另一个ASP.NET网站,并已通过它与这个新项目的设置比较细齿梳子,但找不到区别。
正在发生的事情是,所有的东西都连接起来了,Handler正在将数据序列化到json,并将其写入存储库,而不会出现错误。这个框甚至表现得像它在工作,随着我输入更多的字母而变得越来越小,但是没有显示文本。我发誓这是一个CSS问题,但是通过使用Developer工具栏查看源代码,我发现呈现的列表是不完整的。以下是我从我的网站上看到的不起作用的东西:
<li jQuery16208584441255029163="12"/>
下面是我使用完全相同的插件、CSS、引用、代码等在我的工作站点上看到的情况:
<li class="ui-menu-item" role="menuitem" jQuery16205959569234760148="7">
<a tabIndex="-1" class="ui-corner-all" jQuery16205959569234760148="33">
Text - John Smith
我在这里错过了什么?我调试的所有代码都工作得很好,当作为json写入HttpResponse时,结果是存在的。有什么想法吗?谢谢!
发布于 2011-10-12 12:47:08
阿罗格。在经历了许多挫折之后,我找到了这个问题。我使用LINQ查询使用以下(3)属性填充一个简单的DTO类:
id,标签,价值
...well我是根据我见过的一个示例对类进行建模的,但通常不会创建所有小写值的属性,所以今天上午我将它们更改为:
ID标签价值。
无辜的改变才是罪魁祸首。这些属性被写入json中的响应,并由名为jQuery .js的jquery.ui.autocomplete.js文件进行解析。它包含以下代码(我在后面搜索,详细解释了这篇文章,因为通常我不关心jQuery文件的内部工作;我只关心它们的工作!):
return $.map( items, function(item) {
if ( typeof item === "string" ) {
return {
label: item,
value: item
};
}
是的,区分大小写的值没有从jSON中提取我的大写名称,因此不会在框中呈现任何内容。
https://stackoverflow.com/questions/7745315
复制