Puis-je envoyer un objet du côté client JavaScript au code côté serveur via ASP.NET? P>
5 Réponses :
Oui. Vous pouvez utiliser JSON et DO POST. Si vous utilisez jQuery, vous pouvez utiliser $ .AJAX pour poster les valeurs au côté serveur. J'espère que cela aide. P>
Pouvez-vous m'en dire plus sur JSON (expliquer, exemple)?
Ceci est un bon point de référence HAACKED.COM/Archive/2010/04/15/...
Oui. Une solution pourrait être, d'utiliser une méthode Web; Par exemple:
dataService.push (YourObject) code>; li>
ol> par exemple: p>
Méthodes JavaScript: strong> p> <asp:ScriptManager ID="sm" runat="server">
<Services>
<asp:ServiceReference Path="DataService.asmx" />
</Services>
</asp:ScriptManager>
Vous manquez quelque chose. Comment JavaScript sait-il qu'est-ce que Server-Side-ServeVice?
pas comme tel. Vous pouvez sérialiser l'objet à une chaîne, envoyer cette chaîne à ASP.NET, puis le convertir en un objet de l'autre côté. P>
JSON est un bon format de sérialisation pour cela, et vous pouvez supprimer des objets simples directement dans les différentes bibliothèques qui sont autour (et qui sont répertorié dans l'avant-dernière section de la page d'accueil du JSON ). P>
Pour des objets plus complexes, vous devrez extraire les bits de données relavents dont vous avez besoin pour les recréer avant de le faire. P>
Dans ASP.NET WebForms, j'utiliserais un scriptservice:
Checkout Ces échantillons: http://msdn.microsoft.com/en-us/magazine/cc163499.aspx P>
L'attribut GeneratScriptTTTTTTEPE code> peut être utilisé si vous voulez passer / Obtenez des objets du trou au service:
ASP.NET ScriptService Problème de désérialisation avec des types dérivés P >
[WebService(Namespace = "http://msdnmagazine.com/ws")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[GenerateScriptType(typeof(Object1))]
[GenerateScriptType(typeof(Object2))]
[ScriptService]
public class StockQuoteService : WebService
{
static Random _rand = new Random(Environment.TickCount);
[WebMethod]
public int GetStockQuote(string symbol)
{
return _rand.Next(0, 120);
}
}
Votre exemple montre comment appeler un service Web et passer une valeur unique, mais il ne montre pas comment passer un objet (y compris les propriétés).
Ben Dotnet est juste à propos de l'utilisation d'un Voici comment j'ai pu faire exactement ce que vous " en essayant. D'abord, j'ai défini le type personnalisé que je voulais utiliser dans mon code derrière le fichier. P> puis j'ai créé une webmethod / scriptmethod dans mon code d'envoi de type " p> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />