ASP + jQuery + JSON + Web Service + paraméterek

ASP + jQuery + JSON + Web Service + paraméterek
2010-11-01T18:05:36+01:00
2010-11-03T14:09:15+01:00
2022-11-19T17:15:38+01:00
Deep Silence
Sziasztok!

Egy kódot kéne PHP-ból átültetni ASP.Net-re, azon belül is input mezők tartalmát jQuery-vel, AJAX bevonásával átküldeni JSON formában egy ASP-s Web Service-nek, ahol is feldolgozza, majd egy JSON eredményt visszadob.
Ezzel PHP-ban nincs is semmi gond, mert ugye ott elég rugalmasan lehet bánni a változókkal... Mivel a mezők darabszáma a HTML oldalon változó, ezért nem egy állandó, statikus módszert alkalmazok, hanem összegyűjtöm JavaScriptben a mezőket, neveiket, értékeiket és elkészítem a JSON-t... amit átküldök... csak itt jön a bökkenő, hogy az ASP-s oldalon hogy lehet ezt megoldani, hogy nem tudom előre, hogy mik lesznek a paraméterek? Mutatom a kódrészleteket is:

JavaScript:

var kuldendo = ''; $(container_elem + " textarea").each(function () { kuldendo += '"' + $(this).attr("id") + '" : "' + csere($(this).val()) + '",'; }); . . . kuldendo = '{' + kuldendo + '}'; var mehet = $.parseJSON(kuldendo); $.ajax({ type: "POST", url: "/ajax-json.asmx/TestJSON", dataType: "json", contentType: "application/json; charset=utf-8", data: mehet, . . .

Web Service
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string TestJSON(???parameterek) { . . . return new JavaScriptSerializer().Serialize(visszaadando); }

A kipontozás helyén nyilván még van kód, de az most nem hiszem, hogy érdekes lenne.

Tudna valaki segíteni? PHP-ban nem kellett a megadott paraméterekkel foglalkozni, mert csak simán megnéztem a $_POST[]-ban, hogy van-e pl. és kész... de itt előre meg kell adni a param.listát a függvénydeklarációban... vagy ha listát használok, akkor ott kell felsorolni...

Köszi előre is!
Mutasd a teljes hozzászólást!
Közben rájöttem amegoldásra...
A Web Services-ben a függvény deklaráció így néz ki:

public string TestJSON(string json) {

és a "kuldendo" nevű változóm pedig így épül fel:

kuldendo = '{' + kuldendo + '}'; var mehet = "{'json':" + JSON.stringify(kuldendo) + "}";

Nem a jQuery beépített függvényét használom, mert nincs neki stringify -je... ezért kell használni a hivatalos JSON oldalon lévő json2.js könyvtárat (JSON in JavaScript)

Így megkapja a függvény a serializált JSON objektumot.

Továbbra is utálom az ASP.NET-et...

Hasznos linkek a témában:
ASMX ScriptService mistake – Invalid JSON primitive
3 mistakes to avoid when using jQuery with ASP.NET AJAX
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd