Атрибут "WebMethod" в файлах aspx и asmx, разница? - PullRequest
1 голос
/ 14 ноября 2011

В некотором коде я заметил, что атрибут [ WebMethod ] используется в файле code-behind страницы aspx .

Но, насколько я помню, этот атрибут используется для предоставления доступа к веб-службе, и его часто можно увидеть в файле asmx .

Так в чем же разница между этими двумя употреблениями?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Если этот метод также является статическим, вы можете вызвать этот метод через javascript / ajax, без обратной передачи всей страницы. Обратите внимание, что для вашего ScriptManager свойство EnablePageMethods должно иметь значение true.

1 голос
/ 14 ноября 2011

Веб-методы в коде позади используются для вызовов AJAX.Если вы используете jquery или аналогичный, и вам нужно реализовать функциональность ajax на вашей странице, вам нужно будет определить свой метод с атрибутом WebMethod и сделать его общедоступным статическим.Только тогда это будет работать.

Концепция WebMethod, я чувствую, была взята из веб-служб.Поскольку у asp.net не было определенного способа обработки ajax-запросов к методу страницы позади, они расширили эту функцию для использования в методах кода позади.

Следите за тем, чтобы, будучи публичными статическими методами, вы не могли использовать здесь внутренние свойства вашего класса страниц.так что вам придется иметь дело с этим.

...