Когда мой код JavaScript использует AJAX для вызова метода ASP.NET MVC, он передает значения в JSON. Например:
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
или
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
На стороне ASP.NET MVC у меня есть метод для обработки вызова:
public void DoSomething(string param1, string param2) {
То, что отстой, это param1, заключенный в кавычки:
"some string"
Что еще отстой, так это param2 - это строка :
1234
когда я действительно хочу значение в виде целого числа. Итак, первое, что мне нужно сделать, это использовать DataContractJsonSerializer для декодирования обоих этих щенков, чтобы моя строка не имела кавычек, а моя вторая строка была преобразована в int. Это не так уж плохо в первый или два раза, но стареет, когда приходится выполнять каждое действие AJAX.
В идеале было бы здорово иметь такую подпись:
public void DoSomething(string param1, int param2)
, где я мог бы просто перейти и использовать свои значения, не беспокоясь о JSON-декодировании, точно так же, как это делается для действий без AJAX.
Есть ли способ сделать это?