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

时间:2010-12-16 16:42:24

标签: 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代码?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,一个可行的解决方案就是拥有一个服务继承的基类来实现通用的WebMethod

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