Quando il mio codice JavaScript utilizza AJAX per chiamare un metodo MVC ASP.NET, passa i valori in JSON. Per esempio:ASP.NET MVC decodifica automaticamente i parametri codificati JSON da AJAX
var request = new XMLHttpRequest();
request.open("GET", "http://www.awesome.com/DoSomething?param1=%22some%20string%22¶m2=1234", true); // parameter string created with JSON.stringify
o
var request = new XMLHttpRequest();
request.open("POST", "http://www.awesome.com/DoSomething", true);
// set some headers
request.send("param1=%22some%20string%22¶m2=1234"); // parameter string created with JSON.stringify
Sul lato ASP.NET MVC, ho il mio metodo per gestire la chiamata:
public void DoSomething(string param1, string param2) {
Che schifo è param1 è circondata con citazione contrassegni:
"some string"
Che cosa fa schifo più è param2 è la stringa di :
1234
quando voglio davvero il valore come numero intero. Quindi, la prima cosa che devo fare è usare DataContractJsonSerializer per decodificare entrambi questi cuccioli in modo che la mia stringa non abbia virgolette e la mia seconda stringa sia convertita in un int. Non è male la prima o due volte, ma diventa vecchio dover fare per ogni singola azione AJAX.
Idealmente, sarebbe fantastico avere una firma come:
public void DoSomething(string param1, int param2)
dove ho potuto solo saltare a destra e utilizzare i miei valori, senza preoccuparsi di decodifica JSON, proprio come si fa per le azioni non-AJAX .
C'è un modo per farlo?
stavo cercando questo ovunque! Grazie! –