Ho un posto aspx .NET 3.5 con un metodo contrassegnato con l'attributo [WebMethod]
. Lo chiamo con jQuery, inviando JSON in entrambe le direzioni. Tutto funziona alla grande. La mia domanda è, cosa fa [ScriptMethod]
quando applicato a un metodo? Ho provato questo e sembra dare lo stesso risultato. Sono ScriptMethod
e WebMethod
identici e intercambiabili oppure fornisce funzionalità e/o sovraccarico che l'altro non possiede? In generale, mi trovo confuso con tutte le opzioni disponibili per l'implementazione dei servizi web e mi piacerebbe sapere quali sono i pro ei contro.WebMethod vs ScriptMethod
risposta
L'attributo ScriptMethodAttribute è facoltativo. (Tuttavia, i metodi che possono essere chiamati dallo script client devono avere l'attributo System.Web.Services .. ::. WebMethodAttribute applicato). Se un metodo non è contrassegnato con ScriptMethodAttribute, il metodo verrà chiamato utilizzando il comando HTTP POST e la risposta verrà serializzata come JSON. Non puoi ignorare questa impostazione dallo script.
da - http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx
EDIT: WebMethod e ScriptMethod non sono in competizione gli attributi. ScriptMethod potrebbe essere un'annotazione aggiuntiva, come dice il paragrafo precedente.
WebMethod = chiamata con HTTP POST ... Se si aggiunge ScriptMethod cosa c'è di più? Entrambi possono essere chiamati dal client ... Non capisco. –
Si utilizza l'attributo ScriptMethod nei seguenti 2 scenari.
- Si utilizza jQuery o qualsiasi altro meccanismo richiesta AJAX, ma si desidera che la richiesta di essere un ottenere non un POST.
- Si desidera ricevere una risposta formattata XML in javaScript.
Se non si dispone di uno dei suddetti requisiti; hai solo bisogno di una risposta JSON usando una richiesta Ajax, quindi puoi semplicemente usare il WebMethod.
C'è ancora un altro elemento di confusione qui, quando si utilizza l'attributo ScriptService? questo viene utilizzato se si utilizza il framework di script client Ajax di Microsoft, questo attributo indica al server di generare oggetti proxy sul client in modo che sia possibile chiamare le funzioni esattamente come un oggetto normale. var MyRemoteObject = new RemoteObject();
MyRemoteObject.getMessage(....)
e anche quando si utilizza l'attributo ScriptService non è necessario aggiungere l'attributo ScriptMethod solo negli scenari sopra.
All'inizio mi è stato di confusione perché pensavo che gli attributi ScriptService e ScriptMethod funzionassero insieme come gli attributi WebService e WebMethod.
- 1. Invia JSON a webmethod?
- 2. LoadControl, UserControl in WebMethod
- 3. Accesso al webmethod con jquery
- 4. Validatore personalizzato ASP.NET + WebMethod + jQuery
- 5. . NET: caching dell'output per WebMethod?
- 6. Valori di ritorno WebMethod in formato JSON
- 7. Chiamare un WebMethod utilizzando jQueryAjax "GET"
- 8. WebMethod riceve valori null nei parametri
- 9. Come posso rendere necessario un parametro WebMethod
- 10. Utilizzo di JQuery per chiamare un WebMethod
- 11. ASP.NET WebMethod Restituisce JSON racchiuso tra virgolette
- 12. Descrizione del servizio Web ASMX Parametri WebMethod
- 13. Endpoint CORS su endpoint Webforms asp.net [WebMethod]
- 14. Come restituire un Datatable da un [WebMethod]
- 15. Chiamata ASP.NET PageMethod/WebMethod con jQuery - restituisce l'intera pagina
- 16. ASP .NET: Impossibile chiamare Pagina WebMethod utilizzando jQuery
- 17. Come passare un valore DateTime a un WebMethod (ASMX)
- 18. È possibile utilizzare async/await nel servizio webmethod asmx
- 19. Come postare webform con file su webmethod usando Jquery/Ajax?
- 20. Passare il parametro a WebMethod con jQuery Ajax
- 21. Come posso accedere alla sessione in un webmethod?
- 22. passaggio matrice di stringhe tramite jQuery AJAX per C# WebMethod
- 23. Servizio richieste AJAX con webmethod nella pagina ASPX
- 24. Accesso al controllo ASP.NET da statico [WebMethod] (chiamata JS ajax)
- 25. C# Fire and Forget call in a WebMethod
- 26. Come associare un gridview a un WebMethod statico
- 27. Chiamare webmethod ina aspx.cs file usando jquery ajax
- 28. Posso impostare il codice di risposta HTTP e generare un'eccezione su un servizio JSON ASMX?
- 29. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 30. VS 2008 vs VS 2008 Express
Ottima domanda, e benvenuti a SO! – JoshJordan