c mvc ajax反填下拉,c# - 使用Web API控制器解析传入的JSON(来自javascript Ajax帖子) - 堆栈内存溢出...

我有以下脚本

$(window).load(function () {

var model = [

{

"reservation":

{

"ticketId": "782274b8-10d9-444c-8f05-3117853e3ee0",

"clubId": 70656,

"courtNumber": 1,

"crud_name": "add",

"reservationtype_name": "toernooi"

}

},

{

"reservation":

{

"ticketId": "782274b8-10d9-444c-8f05-3117853e3ee0",

"clubId": 70656,

"courtNumber": 1,

"crud_name": "update",

"reservationtype_name": "toernooi"

}

}

];

alert(JSON.stringify(model));

$.ajax({

type: "POST",

data: JSON.stringify(model),

url: "http://localhost:59854/api/incomingapi",

contentType: "application/json",

dataType: 'json',

success: function (result) { },

error: function (errResult) { }

});

});

我有以下控制器

public string Post(HttpRequestMessage request)

{

string jsonString1 = request.Content.ReadAsStringAsync().Result;

JavaScriptSerializer json_serializer = new JavaScriptSerializer();

var v1 = json_serializer.DeserializeObject("{ \"test\":\"some data\" }");

var v2 = json_serializer.DeserializeObject(jsonString1);

JObject jobj1 = JObject.Parse("{ \"test\":\"some data\" }");

JObject jobj2 = JObject.Parse(jsonString1);

return "";

}

v1和jobj1用于测试。 jsonString1充满了值。 v2在运行时填充值。

但是我只有4种方法

等于()

GetHashCode的()

的GetType()

的ToString()

当我输入我的代码时可用...

我必须将jsonString1的值jsonString1为类型保留的集合或某些我可以循环或使用linq的东西,但是当我尝试类似的东西时,值不会被填充(一切都是null或0)。

例如,下面我可以循环并使用linq但是没有填充值(0和0而不是70656和1):

var parsedVar = json_serializer.Deserialize>(jsonString1);

var clubId = parsedVar.First().clubId;//is 0 should be 70656

var courtNumber = parsedVar.First().courtNumber;//is 0 should be 1

有谁能解决这个问题? 非常感谢!

public class ReservationModelForJson

{

public string ticketId { get; set; }

public int clubId { get; set; }

public int courtNumber { get; set; }

public string crud_name { get; set; }

public string reservationtype_name { get; set; }

}

答案/解决方案:

我在下面添加了这个课程

public class JsonBinder

{

public ReservationModelForJson reservation { get; set; }

}

并将我的控制器改为

public string Post(IEnumerable reservations)

{

int clubId = reservations.First().reservation.clubId;

int courtNumber = reservations.First().reservation.courtNumber;

return "tnkx!";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值