【发布时间】:2009-07-04 04:39:47
【问题描述】:
当我的 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 操作所做的那样。
有没有办法做到这一点?
【问题讨论】:
标签: asp.net-mvc json