Asp.net mvc 控制器动作赢了';t绑定JSON视图模型

Asp.net mvc 控制器动作赢了';t绑定JSON视图模型,asp.net-mvc,json,asp.net-mvc-3,knockout.js,knockout-2.0,Asp.net Mvc,Json,Asp.net Mvc 3,Knockout.js,Knockout 2.0,每次我发布到我的操作时,我的ViewModel都不为空,但里面的所有值都始终为空 在我有console.log的地方,我可以看到完美的JSON被输出到控制台 有什么想法吗 行动: public ActionResult Add(MyViewModel model) { //stuff } JS: 编辑: 哇,我觉得自己很笨,我有私人设置,所以这就是它没有绑定的地方。试试这个: $.post("/user/add", data, function(result){ //stuff }, data

每次我发布到我的操作时,我的
ViewModel
都不为空,但里面的所有值都始终为空

在我有
console.log
的地方,我可以看到完美的JSON被输出到控制台

有什么想法吗

行动:

public ActionResult Add(MyViewModel model)
{
//stuff
}
JS:

编辑:

哇,我觉得自己很笨,我有
私人设置
,所以这就是它没有绑定的地方。

试试这个:

$.post("/user/add", data, function(result){
//stuff
}, dataType: json);
我过去遇到的情况是,默认数据类型不是Json,因此它不能正确地传递它。可能不是这里发生的事情….

尝试一下:

$.post("/user/add", data, function(result){
//stuff
}, dataType: json);

我过去遇到的情况是,默认数据类型不是Json,因此它不能正确地传递它。可能不是这里发生的事情….

您必须将数据转换为json
json.stringify(result)


var model=@Html.Raw(Viewbag.MyJSON);
var viewModelDetails=ko.mapping.fromJS(模型);
this.addData=函数(){
var data=ko.toJSON(viewModelDetails);
控制台日志(数据);
$.post(“/user/add”,JSON.stringify(数据),函数(结果){
//东西
}, 
数据类型:json,
传统的:真的
);
}

您必须将数据转换为json
json.stringify(结果)


var model=@Html.Raw(Viewbag.MyJSON);
var viewModelDetails=ko.mapping.fromJS(模型);
this.addData=函数(){
var data=ko.toJSON(viewModelDetails);
控制台日志(数据);
$.post(“/user/add”,JSON.stringify(数据),函数(结果){
//东西
}, 
数据类型:json,
传统的:真的
);
}

我以前也遇到过类似的问题。我将与您分享我提出的解决方案

进行如下更改

var data = ko.toJS(viewModelDetails);
注意:要在没有本机JSON序列化程序(例如IE 7或更早版本)的旧浏览器上运行,还必须参考json2.js库

我知道这将非常有效。如果解决了您的问题请将其标记为答案

如果它对您有用,请单击上行链路

代码中有什么问题:-

var data = ko.toJSON(viewModelDetails);

您需要将数据再次解析为json,然后您可以使用它,否则它将出错。

我以前遇到过类似的问题。我将与您分享我提出的解决方案

进行如下更改

var data = ko.toJS(viewModelDetails);
注意:要在没有本机JSON序列化程序(例如IE 7或更早版本)的旧浏览器上运行,还必须参考json2.js库

我知道这将非常有效。如果解决了您的问题请将其标记为答案

如果它对您有用,请单击上行链路

代码中有什么问题:-

var data = ko.toJSON(viewModelDetails);

你需要将数据重新解析为json,然后你可以使用它,否则它会出错。

你能在调用
ko.toJSON
之后发布
数据的json吗?你能在调用
ko.toJSON
之后发布
数据的json吗?