2016-06-29 7 views
1

Ich muss Parameter von einem Ajx-Aufruf an eine Funktion übergeben, die in vb.net definiert ist.Wie Parameter an eine Funktion übergeben werden, die in vb.net durch Ajax definiert ist

Die Funktionsdefinition ist:

<System.Web.Services.WebMethod()> _ 
    Public Shared Function wwww(ByVal id As String) As String 


     Return "jhgfjhf" 

    End Function 

Ajax Anruf ist wie folgt:

var l = window.location; 
    var base_url = l.protocol + "//" + l.host; 

    $(".pagen ").click(function() { 


     var num = $(this).attr('id'); 

     alert(num); 
     $.ajax({ 
      type: "POST", 
      url: base_url + '/Album%20Viewer%20web/albumlist.aspx/wwww', 
      data: { id:num }, 
      dataType: 'json', 
      async: false, 
      cache: false, 
      contentType: "application/json", 

      success: function (response) { 

       console.log(response); 




      }, 
      error: function (jqXHR, textStatus, errorThrown) { 

       if (typeof (console) != 'undefined') { 
        console.log(errorThrown); 
       } 
       else { alert("something went wrong"); } 
      } 
     }); 


    }); 

Während mit diesem Code zu einem internen Server resultierenden error.If I Argument Abschnitt (verwendet, um Daten zu entfernen: { } und Public Shared Funktion wwww() als String), dann wird es gut funktionieren.Wie kann ich dann Parameter übergeben?

Antwort

0

Um Anrufe von Skript können Sie das ScriptService Attribut zu Ihrem WebService hinzufügen müssen, dann (eine JSON zurück) hinzufügen ScriptMethod Attribut auf den WebMethod:

<ScriptService()> 
Public Class WebService1 
    Inherits System.Web.Services.WebService 

    <WebMethod()> _ 
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> 
    Public Function wwww(ByVal id As String) As String 
     Return id & "AAA" 
    End Function 

End Class 

Dann müssen Sie etwas ändern, wie Sie passieren Daten über Javascript wie folgt aus:

data: "{ 'id':'" + num +"'}", // "{'id':'something'}" 

Wert wird in JSON zurückgegeben werden, so den Wert lesen Sie benötigen:

var returnedValue = response.d // 'd' because Microsoft decided so 
Verwandte Themen