ASP.NET:jQuery AJAX’data’param问题
发布时间:2020-12-16 00:28:21 所属栏目:asp.Net 来源:网络整理
导读:我一直在使用这段代码的问题,我花了最近3个小时的时间挖掘,并试图找到答案。由于我没有成功,我只会发布代码,并询问我的Web服务应该有哪些参数来处理这个请求: var args = [{ key: 'myId',value: 'myValue' },{ key: 'myOtherId',value: 'myOtherValue'}
我一直在使用这段代码的问题,我花了最近3个小时的时间挖掘,并试图找到答案。由于我没有成功,我只会发布代码,并询问我的Web服务应该有哪些参数来处理这个请求:
var args = [{ key: 'myId',value: 'myValue' },{ key: 'myOtherId',value: 'myOtherValue'}]; var dataToSend = { name: 'fooId',value: 'fooValue',args: args }; $.ajax({ type: 'POST',url: 'fooURL',data: dataToSend,contentType: 'application/json; charset=utf-8',dataType: 'json',success: OnSuccess,error: OnError }); 现在,哪一种签名我应该能够得到我的“dataToSend”? 我试过了: [WebMethod,ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string Foo(string name,object value,List<Args> args) { return "OK"; } public class Args { public string key { get; set; } public object value { get; set; } } 和 [WebMethod,object[] args) { return "OK"; } 并且 [WebMethod,ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string Foo(dataToSend dataToSend) { return "OK"; } public class dataToSend { public string name { get; set; } public object value { get; set; } public List<Args> args = new List<Args>(); } public class Args { public string key { get; set; } public object value { get; set; } } 解决方法
尝试将数据作为字符串传递,而不是对象,即:
$.ajax( { ... data : '{ a: 2,b: 3 }',... } ); 这样做的原因是,如果您将对象指定为数据,则jQuery使用查询字符串格式对数据进行序列化,而服务器则期待直接使用JSON格式。 尽管告诉jQuery使用JSON作为数据类型,但这似乎只与结果相关,而不是发送到服务器的请求有效性。 其他一切对我来说都是正确的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何以模态弹出窗口打开aspx页面
- entity-framework-4 – 首先在实体框架代码中使用导航属性
- asp.net-mvc – 具有接受routeValues和htmlAttributes的重载
- 部署 – ASP .NET 5中的配置文件转换
- msbuild – 为什么aspnet_compiler需要对构建服务器上的Tem
- asp.net-mvc – 什么是ASP.Net MVC查看引擎?
- asp.net-mvc – 如何使用可选的查询字符串参数测试MVC路由
- ASP.NET MVC – 开始的原因
- asp.net – 适用于Linq To SQL DAL的静态方法吗?
- asp.net-mvc – 使JSON.NET和Serializable属性一起工作