Атрибут ScriptMethod используется в следующих 2 сценариях.
- Вы используете jquery или любой другой механизм запроса ajax, но хотите, чтобы запрос был GET, а не POST.
- Вы хотите получить отформатированный ответ XML в javaScript.
Если у вас нет одного из вышеуказанных требований; вам просто нужен JSON-ответ с использованием ajax-запроса, тогда вы можете просто использовать WebMethod.
Здесь есть еще один запутанный элемент, когда вы используете атрибут ScriptService? это используется, если вы используете среду сценариев Microsoft Ajax Client, эти атрибуты сообщают серверу генерировать прокси-объекты на клиенте, чтобы вы могли вызывать функции так же, как обычный объект. var MyRemoteObject = new RemoteObject();
MyRemoteObject.getMessage(....)
и даже когда вы используете атрибут ScriptService, вам не нужно добавлять атрибут ScriptMethod только в вышеуказанных сценариях.
Вначале меня это смущало, потому что я думал, что атрибуты ScriptService и ScriptMethod работают вместе, как атрибуты WebService и WebMethod.