7
votes

Puis-je envoyer un objet du côté client JavaScript au code côté serveur via ASP.NET?

Puis-je envoyer un objet du côté client JavaScript au code côté serveur via ASP.NET?


0 commentaires

5 Réponses :


1
votes

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.


2 commentaires

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/...



3
votes

Oui. Une solution pourrait être, d'utiliser une méthode Web; Par exemple:

  1. Créer un service LI>
  2. appel de la méthode JavaScript comme: 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>
    


1 commentaires

Vous manquez quelque chose. Comment JavaScript sait-il qu'est-ce que Server-Side-ServeVice?



2
votes

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é.

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 ).

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.


0 commentaires

4
votes

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);
    }
}


1 commentaires

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).



2
votes

Ben Dotnet est juste à propos de l'utilisation d'un scriptservice Scriptservice strong> dans ASP.NET WebForms. En plus d'utiliser le décorateur stress> ScriptService strong> Le décorateur GeneratScriptTTTTTTTTTTTTTTTTTTETTTTTTTTTTTTTTTTETTTTTTETTTTTTTTTECLE FORT> est important pour vous assurer que le type complexe que vous souhaitez utiliser est inclus. J'ai trouvé que les articles ben liés sont utiles en plus de celui-ci: http://www.webreference.com/programmer/asp-net-ajax/complex-data-types/index.html

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> xxx pré>

puis j'ai créé une webmethod / scriptmethod dans mon code d'envoi de type " p>

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />


0 commentaires