2010-11-07 3 views
1

Я пытаюсь вызвать метод asp.net с помощью jquery/ajax с помощью кнопки, щелкнув по модальному диалоговому окну. Но все, что я, кажется, получаю, это и предупреждение, говорящее «ошибка». Я видел много подобных примеров для этого онлайн, но я не могу заставить его работать. Страница/метод, который я вызываю (newcall.aspx/savenote), является той же страницей, что и все jquery/ajax и т. Д.asp.net jquery ajax post

Есть идеи?

Спасибо,

 var dlg = jQuery("#dialog2").dialog({ 
      bgiframe: false, 
      autoOpen: true, 
      height: 410, 
      width: 800, 
      modal: true, 
      show: 'Transfer', 
      hide: 'Transfer', 
      draggable: true, 
      resizable: true, 
      buttons: { 
       "Cancel": function() { 
        $(this).dialog("close"); 
       }, 
       "Save": function() { 
        var txtnote = document.getElementById("<%=txtNote.ClientID %>").value; 

        $.ajax({ 
         type: "POST", 
         url: "newcall.aspx/savenote", 
         data: txtnote, 
         contentType: "application/json; charset=utf-8", 
         dataType: "json",        
         success: function(msg) { 
          alert(msg); 
         },   
         error: function(XMLHttpRequest, textStatus, errorThrown) { 
          alert(textStatus); 
         } 
        }); 

        $(this).dialog("close"); 
       } 
      } 
     } 

     ); 

код позади метода :(На данный момент я просто возвращающие «ОК»)

Public Function savenote() As String 
    Return "ok" 
End Function 
+0

Отсутствует атрибут WebMethod? – tvanfosson

+0

Изменить 'alert (textStatus);' to 'alert (errorThrown);', что вы получаете? –

+0

Теперь я получаю «undefined» – thegunner

ответ

1

Вам нужно добавить атрибут WebMethod, объявить метод страницы как Shared, и сопоставьте данные, которые вы отправляете с сигнатурой метода. Это, как вы должны изменить свой метод на стороне сервера:

<WebMethod()>_ 
Public Shared Function savenote() As String 
    Return "ok" 
End Function 

Вы можете уйти с не изменив параметр данных, но, вероятно, не так как он недействителен JSON. Попробуйте изменить свой параметр данных до {}. Когда вы будете готовы начать передавать txtnote в ваш серверный метод, вам нужно передать это как .