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

标签 asp.net jquery ajax autocomplete

我的网站上的 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 代码?

最佳答案

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

这样,或者您可以通过将自动完成查找的逻辑抽象到一个类中,然后根据需要每次从您的 WebMethod 中调用它,从而使其“非常干净”。

关于asp.net - 将自动完成方法放在单独的 Web 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463165/

相关文章:

javascript - 如何使 slider 图像变暗?

javascript - 调用 querySelectorAll 的 Angular 指令使用 5% 的 cpu

asp.net - WebPart RenderControl 不呈现内容

asp.net - 51°e 基金会 - 不针对新手机进行重定向

javascript - 如何获取上传文件的最后修改日期?

javascript - 如何选择具有相同类但仅在同一字段集中的复选框?

c# - 从 SQL 查询返回参数

javascript - 将表行转换为输入

javascript - Bootstrap 表 : How to show in modal window data from table with getSelected

ruby-on-rails - Rails远程表单通过javascript提交