Поместить методы автозаполнения в отдельный веб-файл? - PullRequest
2 голосов
/ 16 декабря 2010

У меня есть веб-сайт с растущим числом вызовов AJAX.

У меня есть код AJAX, который выглядит следующим образом:

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

Первоначально вышеупомянутый код javascript использовался на веб-странице, где пользователь вводил имя человека для поиска; Я решил, что хочу иметь автозаполнение имени.

Однако, продолжая развивать веб-сайт, я решил, что хочу использовать автозаполнение с одним и тем же именем на многих страницах. Логично, что имеет смысл помещать мой код JavaScript во внешний файл .js вместо того, чтобы повторять его на каждой странице.

Также имеет смысл поместить код .net, который обрабатывает AJAX, в отдельный файл. Код автозаполнения .net выглядит следующим образом:

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

Естественно, казалось, что эти коды принадлежат внешнему файлу .asmx или, возможно, файлу .ashx, но я не могу заставить работать мой код javascript, пока я не вызову вышеуказанный код из selectName.aspx.

Как я могу получить свой код AJAX .net в отдельном кодовом файле?

1 Ответ

0 голосов
/ 08 марта 2011

Если я правильно понимаю вашу проблему, жизнеспособным решением будет иметь базовый класс, от которого наследуются ваши сервисы, и который будет реализовывать общий WebMethod.

Это, или вы могли бы получить его "довольно чисто", если бы логику поиска автозаполнения абстрагировали в класс и просто вызывали его из ваших WebMethod каждый раз, когда это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...