【发布时间】:2017-09-19 19:10:33
【问题描述】:
我有一个 AJAX 请求,它使用 POST 请求将 JSON 对象从 MVC 视图发送到控制器:
function sendData(subscriptionJson) {
$.ajax({
type: "POST",
url: '@Url.Action("SubscribeSecurities", "Subscription")',
data: '{"subscriptions": ' + subscriptionJson + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
console.log("success response: " + response.responseText);
alert("Hello: " + response.Name + " .\nCurrent Date and Time: " + response.DateTime);
},
failure: function (response) {
console.log("failure response: " + response.responseText);
alert(response.responseText);
},
error: function (response) {
console.log("error response: " + response.responseText);
alert(response.responseText);
}
});
}
控制器动作的定义如下:
[HttpPost]
public ActionResult SubscribeSecurities(string subscriptions)
{
JSON 格式如下:
{
"Subscriptions": {
"Obj1": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj2": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj3": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
}
}
}
什么可能导致问题?
编辑
这是我在创建对象以存储 JSON POST 请求返回的值后所做的更新。
JSON
var test = {
"Obj1": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj2": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj3": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
}
}
捕获 JSON 的模型
public class RootObject {
// Give this a better name. RootObject is a horrible name.
public IEnumerable<SubscriptionObj> Subscriptions { get; set; }
}
public class SubscriptionObj
{
public Int64 Value1 {get;set;}
public Int64 Value2 {get;set;}
public Int64 Value3 {get;set;}
public Boolean Value4 {get;set;}
}
【问题讨论】:
-
data: { subscriptions: subscriptionJson }, -
@Spectarion 数据值实际上按照this posts工作
-
报告任何错误?
-
@Komal 其实我错过了这个错误,我会用它更新帖子
-
subscriptionJson 是字符串吗?该 subscriptionJson 将被序列化为一个复杂的对象,它!= 字符串。
标签: jquery json ajax asp.net-mvc