2012-01-10 2 views
0

Im essayant d'obtenir une réponse d'une fonction dans un webservice, mais je ne pense pas que je suis en train de créer le service correctement ...comment jquery poster en asmx?

C'est le code pour le service web ...

<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class WebService 
    Inherits System.Web.Services.WebService 

    <WebMethod()> _ 
    Public Function HelloWorld(ByVal ManufID As String) As String 

     Return "{\'error\': \'Not found\'}" 

    End Function 

End Class 

c'est le jquery ...

$.ajax({ 
     type: "POST", 
     url: "WebService.asmx/HelloWorld", 
     data: '{' + 
        'ManufID:"' + item + '"' + 
       '}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
      var data = json_parse(msg.d); 
      if (!data.error) { 
       $.each(data, function (d) { 
        alert(data[d].model); 
        $("<option>").attr("value", data[d].id).text(data[d].model).appendTo($('.Finish1')); 
       }); 
      } 
      else { 
       alert("Cannot get memeber's notes data\n" + data.error); 
      } 
     }, 
     error: function (msg) { 
      alert('Get Details Failure: ' + msg); 
     } 
    }); 

Je sais que cela ne fonctionnera pas encore complètement, im juste essayer d'obtenir le droit de communication pour le moment ...? merci

+0

Est-ce becoz je retourne un objet JSON? – Beginner

+0

Appelez-vous ce service Web à partir d'une page dans la même application? – Greg

+0

Oui, je suis tout dans un site – Beginner

Répondre

1

Vérifiez cet article. http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

Si vous envisagez de l'appeler à partir de votre application, vous devez créer une méthode de page au lieu d'un service Web.

Throw cette sous votre fonction Page_Load() de Default.aspx

[WebMethod] 
public static string GetDate() 
{ 
    return DateTime.Now.ToString(); 
} 

ensuite mis cela dans l'en-tête de Default.aspx

$(function(){ 
$.ajax({ 
    type: "POST", 
    url: "Default.aspx/GetDate", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
    alert(msg.d); 
    } 
}); 
}); 
+0

J'aimerais faire ça comme ça, mais Je dois le faire à travers le service web J'ai peur – Beginner

+0

Si cela ne vous dérange pas de me demander, pourquoi est-ce que ce doit être un service web? – Greg

+0

je duno mais tous les appels ajax ont été dit de placer dans ce service web – Beginner