Cuando mi código JavaScript usa AJAX para llamar a un método ASP.NET MVC, pasa valores en JSON. Por ejemplo:ASP.NET MVC decodifica automáticamente los parámetros codificados en JSON desde 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
En el lado ASP.NET MVC, tengo mi método para gestionar la llamada:
public void DoSomething(string param1, string param2) {
Lo que se chupa param1 está rodeado con la cita marcas:
"some string"
Lo que chupa más es param2 es la cadena :
1234
cuando realmente quiero el valor como un entero. Entonces, lo primero que tengo que hacer es usar DataContractJsonSerializer para decodificar estos cachorros, así que mi cadena no tiene comillas y mi segunda cadena se convierte en una int. No es tan malo la primera o las dos veces, pero se hace viejo para cada acción de AJAX.
Idealmente, sería impresionante tener una firma como:
public void DoSomething(string param1, int param2)
donde tan sólo pudiera saltar a la derecha y usar mis valores sin preocuparse de decodificación JSON, al igual que se hace para las acciones no AJAX .
¿Hay alguna manera de hacerlo?
que estaba buscando esto por todas partes! ¡Gracias! –