WebMethod (иногда) возвращает весь сайт - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть WebMethod, который принимает один параметр.

Когда я отправляю запрос в веб-метод без каких-либо параметров, все работает хорошо, но когда я задаю параметр для того же метода, он возвращает весь сайт вместо строки.

Параметр страницы ничего не меняет, кроме содержимого списка.

Список - это просто ListView, который отображает список строк.

Когда я использую URLRewriting, URL-адрес отличается в тех случаях, когда я предоставляю параметр из экземпляров, когда у меня его нет.

Кто-нибудь может мне помочь с этой проблемой?

Мой WebMethod:

[WebMethod]  
public static string GetResult(int id)  
{
    return "Hooray";
}

Мой вызов веб-метода:

PageMethods.GetResult(docId,  
    function onSuccess(list) {  
        $(element).parent().siblings().filter(":first").append(list);  
    });

URL без параметра:
www.mywebsite.com/items is rewritten to www.mywebsite.com/items.aspx

URL с параметром:
www.mywebsite.com/items/1 is rewritten to www.mywebsite.com/items.aspx?id=1

1 Ответ

4 голосов
/ 15 сентября 2011

Вот обсуждение вашей же проблемы , которое может пролить некоторый свет на ситуацию. По сути, это говорит о том, что он не работает, потому что обработчик, работающий с PageMethods, ищет {pagename.aspx} / {methodname}, а перезапись вашего URL приводит к тому, что он не распознает, что вы вызываете метод страницы.

Одним из предложений на этой странице было добавить следующее в ваш код javascript где-нибудь после автоматически сгенерированного вызова той же подписи:

PageMethods.set_path('/items.aspx');

Это заставит вызывать метод вашей страницы, используя реальный URL вместо переписанного.

...