【问题标题】:Send complex data to C# with jQuery使用 jQuery 将复杂数据发送到 C#
【发布时间】:2013-02-14 10:25:50
【问题描述】:

我有一个 JavaScript 对象,所以我想发送到 C#(问题在底部)

var data = {
    mykey1: "somevalue",
    mykey2: "somevalue2",
    addProducts: [
        {
            id: 1,
            quantity: 3,
            variation: 54
        },
        {
            id: 2,
            quantity: 5,
            variation: 23
        }
    ]
}

将单个产品或多个产品添加到用户购物篮中。我想发回一组对象..

我可以使用 Javascript 访问它

data.addProducts[1].id

使用下面...

$.ajax({
    url: "/ajax/myurl",
    data: data,
    dataType: "json",
    type: "GET",
    success: function( response ){
        // Data returned as JSON
    }
});

它正在发送这样的数据(为了您的阅读乐趣而进行 URL 解码)

?mykey1=somevalue&mykey2=somevalue2&addProducts[0][id]=1&addProducts[0][quantity]=3&addProducts[0][variation]=54&addProducts[0][id]=2&addProducts[0][quantity]=5&addProducts[0][variation]=23

我的问题是...不对数据使用JSON.stringify,它只会将其作为完整对象发送到网址/ajax/myurl/{mykey1:1 ...}

如何从 C# 中读回这些信息? jQuery 只是将其编码为标准方式,我是否应该对此做任何其他事情,是否有内置的方法可以在 C# 中获取这些数据?

【问题讨论】:

  • 您在 C# 端使用了哪些技术?例如,一旦您设置了必要的类,ASP.NET MVC 将能够 100% 自动将其反序列化为对象形式。
  • 使用 GET 方法有严格要求吗?
  • GET 不是一个严格的方法,但我不会使用这个 API 调用 POST / PUT 更新或创建任何东西。
  • 是的,我们使用的是 MVC 3.5 服务器大小

标签: c# ajax api query-string


【解决方案1】:

var strValue = $(getStringValue);
var intValue = $(getIntValue)
$.ajax({
type: \"post\",
url: \"default.aspx/getData\",
data: \"{\'postedAjaxStringValue\"\': \'\" + encodeURIComponent(strValue) + \"\', postedAjaxIntValue: \" + encodeURIComponent(intValue ) + \"}\",
contentType: \"application/json; charset=utf-8\",
dataType: \"json\",
success: OnSuccess,
failure: function (response) {
error: function (response) {
});

//开启 C# KodeBehind..

[System.Web.Services.WebMethod]
public static string getData(string postedAjaxStringValue, int postedAjaxIntValue){}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多