js:jQuery AJAX ne pas frapper ASP.NET Web Service lors du passage des paramètres
var paramStr = $('#id1').val() + '|' + $('#id2').val() + '|' + $('#id3').val();
paramStr = '{"searchCriteria": "' + paramStr + '"}';
$.ajax({
type: "POST",
url: "/MyService.asmx/MyWebMethod",
data: paramStr,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
}
});
VB.NET:
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class LogisticsMainMenuService
Inherits System.Web.Services.WebService
<WebMethod(EnableSession:=True)> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function MyWebMethod(ByVal searchCriteria As String) As String
Dim dummy as Integer = 1
.
.
Return someResult
End Function
End Class
Je mets un point de rupture à l'intérieur MyWebMethod. Lorsque j'appelle cet appel sur la page, le point d'arrêt n'est jamais touché. Cela fonctionne bien lorsque je supprime tous les paramètres de la signature de MyWebMethod et que je passe en '{}' de JS en tant que paramètres. Une fois que j'essaie de transmettre un paramètre de chaîne, il cesse de fonctionner. Aucune suggestion? Merci!
Je ne sais pas si cela compte, mais n'est pas basé sur les services Web SOAP, en passant les paramètres de requête ne va changer l'URL à: /MyService.asmx/MyWebMethod?{"searchCriteria ":" 1 | 2 | 3 "} qui ne va pas très bien fonctionner –
@Bob J'ai regardé environ 5 exemples différents, ils suggèrent tous de le faire de cette façon. J'ai déjà travaillé avec .NET MVC. Ceci (ou similaire) serait le moyen de le faire dans MVC. – Dimskiy