2014-12-08 1 views
0

Может ли кто-нибудь научить меня, как я могу назвать этот пример веб-методом C# с AJAX и jQuery?Как вызвать веб-метод void C# с jQuery AJAX?

public class Default { 
     [WebMethod] 
     public static void Example() 
     { 
      //do something 
     } } 
+0

'WebMethod' [больше не поддерживается] (http://johnwsaunders3.wordpress.com/2011/12/07/more-reasons-to-not-use-asmx-services-in-new-code/) от Microsoft. Возможно, вы захотите ознакомиться с технологией замены для служб на основе REST, [ASP.NET Web API] (http://www.asp.net/web-api). Он имеет более чистую модель и поддерживается Microsoft. – mason

ответ

2

У меня не было никаких проблем, используя метод ниже:

Javascript

var dataParam='{"param":"1"}'; //or whatever data you may be sending or not sending 

$.ajax({ 
    type : "POST", 
    url : myHomeUrl + '/SendDataVoid', 
    contentType : "application/json; charset=utf-8", 
    data : dataParam, 
    datatype : "json", 
}).done(function (data) { 
    alert('success'); 
}).fail(function (jqXHR, textStatus, errorThrown) { 
    alert(jqXHR.getResponseHeader("error")); 
}); 

C#

[WebMethod] 
public static void SendDataVoid(string param) 
{ 
    try 
    { 
     //do stuff here 
    } 
    catch (Exception ex) 
    { 
     System.Web.Services.WebService wsError = new System.Web.Services.WebService(); 
     wsError.Context.Response.StatusCode = 500; 

     wsError.Context.Response.AppendHeader("error", ex.Message); 

    } 
} 

Это позволяет вам быть в состоянии послать фактическая ошибка msg back i вместо общей ошибки «Внутренний сервер».

+0

Итак, что, «данные» возвращается? – eaglei22