加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC自动解码来自AJAX的JSON编码参数

发布时间:2020-12-16 03:18:10 所属栏目:asp.Net 来源:网络整理
导读:当我的 JavaScript代码使用AJAX调用ASP.NET MVC方法时,它会传递JSON中的值.例如: var request = new XMLHttpRequest();request.open("GET","http://www.awesome.com/DoSomething?param1=%22some%20string%22param2=1234",true); // parameter string create
当我的 JavaScript代码使用AJAX调用ASP.NET MVC方法时,它会传递JSON中的值.例如:

var request = new XMLHttpRequest();
request.open("GET","http://www.awesome.com/DoSomething?param1=%22some%20string%22&param2=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&param2=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操作一样.

有没有办法做到这一点?

解决方法

哦,发布后我发现代码可以完成我正在寻找的东西.请参阅底部附近的“ObjectFilter”类:

http://weblogs.asp.net/omarzabir/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读