【问题标题】:Put autocomplete methods in separate web file?将自动完成方法放在单独的 Web 文件中?
【发布时间】: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 代码?

【问题讨论】:

标签: asp.net jquery ajax autocomplete


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2022-06-10
    相关资源
    最近更新 更多