当我的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操作一样.
有没有办法做到这一点?