将自动完成方法放在单独的 Web 文件中?

Posted

技术标签:

【中文标题】将自动完成方法放在单独的 Web 文件中?【英文标题】:Put autocomplete methods in separate web file? 【发布时间】:2011-05-26 16:15:49 【问题描述】:

我的网站有越来越多的 AJAX 调用。

我的 AJAX 代码如下所示:

function setupNameAutocomplete(id) 
    $(id).autocomplete(
        source: function(request, response) 
            $.ajax(
                url: "selectName.aspx/getNameAutocomplete",
    ....

最初,上面的 javascript 代码用于用户输入要搜索的人名的网页上;我决定要对名称进行自动填充。

但是,随着我继续开发网站,我决定希望能够在许多页面上使用相同的“名称”自动完成功能。从逻辑上讲,将我的 javascript 代码放在外部 .js 文件中而不是在每个页面上重复它是有意义的。

我也想将处理 AJAX 的 .net 代码放在它自己的文件中也是有道理的。 .net 自动完成代码如下所示:

   [WebMethod]
    public static IEnumerable<string> getNameAutocomplete(string text)
    
        IEnumerable<string> values = lookupNamesThatStartWith(text);
        return values;
    

当然,这些代码似乎属于外部 .asmx 或 .ashx 文件,但除非我从 selectName.aspx 调用上述代码,否则我的 javascript 代码无法正常工作。

如何在单独的代码文件中获取我的 AJAX .net 代码?

【问题讨论】:

看到这个问题***.com/questions/457183/… AND ***.com/questions/305994/… 由于插件或jQuery UI版本的自动完成,知道哪个可能会有所帮助。 【参考方案1】:

如果我正确理解您的问题,一个可行的解决方案是让您的服务继承一个基类来实现通用的WebMethod

那个,或者您可以通过将自动完成查找的逻辑抽象到一个类中并根据需要每次从您的WebMethods 调用它来“非常干净”。

【讨论】:

以上是关于将自动完成方法放在单独的 Web 文件中?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌将自动完成功能放在反应组件中

我需要将 urlsession 数据任务放在另一个 DispatchQueue 上还是自动完成?

如何通过自动完成点击页面的任务

单独更改 jquery-ui 自动完成小部件的宽度

Eclipse 自动完成快捷方式不显示使用复合组件的新标签的属性

eclipse 创建web项目时没有自动生成index.jsp 请问如何处理!