Свойство Jquery Ajax для Asp.Net 2.0 - PullRequest
0 голосов
/ 15 ноября 2008

Я всегда вижу такой код в блогах:

$.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "WebService.asmx/HelloWorld",
                    data: "{}",
                    dataType: "json",
                    success: function(msg) {
                        alert(msg.d);
                    }
                });

Но я думаю, что это работает только с asp.net 3.5. Я не мог запустить его с 2.0. Как я могу использовать такие коды в своих приложениях?

Ответы [ 6 ]

2 голосов
/ 16 ноября 2008

Вам необходимо добавить этот атрибут в ваш класс веб-сервера

[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService

и этот атрибут для ваших функций

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

Технически вам не нужно указывать формат ответа, так как он отвечает согласно в формате, который вы указываете в запросе. И вы должны указать формат в запросе.

Привет
K

1 голос
/ 05 января 2010

Если вы используете jQuery для подключения к серверу, вам не нужно ScriptManager в вашем HTML.

Я думаю, что другая часть вашего кода верна. Просто удалите ScriptManager.

0 голосов
/ 16 ноября 2008

В заключение, Вы говорите, что я не могу использовать эти коды напрямую с asp.net 2.0?

0 голосов
/ 15 ноября 2008

Я думаю, что вам не хватает того, что метод, помеченный тегом WebMethod, собирается сериализовать данные как XML, а не как JSON. С ASP.NET MVC вы можете вернуть JSON изначально, но если вы хотите использовать JSON для WebMethod, вам может потребоваться написать собственный конвертер. Я бы посоветовал попытаться изменить тип данных для вызова AJAX на «xml» и посмотреть, работает ли он.

Я также не использую jquery для AJAX (пока), поэтому я еще не пробовал (пока).

0 голосов
/ 15 ноября 2008

Мы используем jQuery для всех наших манипуляций с DOM, но при отправке данных обратно на сервер мы используем ASP.Net AJAX, чтобы использовать преимущества автоматически сгенерированных прокси-классов

делает жизнь по-настоящему простой!

0 голосов
/ 15 ноября 2008

Я уже знаю эту статью, но она не может мне помочь.

В моем примере приложения я использую следующие коды:

мой код Jquery:

     $(document).ready(function() {            
        $('#clKaydet').click(function() {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "WebService.asmx/HelloWorld",
                data: "{}",
                dataType: "json",
                success: function(msg) {
                    alert(msg);
                }
            });

        });

    });

Мой HTML-код:

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
    <div>

        <input type="button" id="clKaydet" runat="server" value="Kayıt" onclick="Kayit()" />
    </div>

    </div>
    </form>

Код моей веб-службы:

  <WebMethod()> _
Public Function HelloWorld() As String
    Dim sText As String = "Hello"
    Return sText
End Function

Есть ли ошибка?

...