控制器动作将不绑定JSON视图模型 [英] Controller Action won't bind JSON ViewModel
问题描述
我每次张贴到我的行动,我的视图模型
不为空,但所有的值总是里面的。
Every time I post to my Action, my ViewModel
is not null, but all the values inside always are.
在那里我有的console.log
,我可以看到完美的JSON输出到控制台。
Where I have console.log
, I can see perfect JSON being output to the console.
任何想法?
动作:
public ActionResult Add(MyViewModel model)
{
//stuff
}
JS:
<script type="text/javascript">
var model = @Html.Raw(Viewbag.MyJSON);
var viewModelDetails = ko.mapping.fromJS(model);
this.addData = function() {
var data = ko.toJSON(viewModelDetails);
console.log(data);
$.post("/user/add", data, function(result){
//stuff
});
}
</script>
示范
public MyViewModel()
{
Game Game{get;set;}
}
编辑:
WOW,我觉得哑巴,我不得不私人组
,因此多数民众赞成它没有得到约束。
WOW, I feel dumb, I had private set
, so thats what it wasn't getting bound.
推荐答案
我已经遇到过这样的问题before.I分享你我所做出的解决方案。
I have faced issues like this before.I share you the solution what i made.
请象下面这样的变化
var data = ko.toJS(viewModelDetails);
注意:这个工作对那些没有原生JSON序列化老的浏览器(如IE 7或更早的版本),还必须参考json2.js库
我知道这将工作完美。如果它的解决您的问题将其标记为答案
I know this will work perfect.If it solves your problem mark it as answer
如果它的对你有用然后点击上行
请告诉我在code中的问题: -
var data = ko.toJSON(viewModelDetails);
您需要解析数据再次为JSON,那么你可以使用它,否则会出现错误。
You need to parse data again as json , then you can use it, else it will get error.
这篇关于控制器动作将不绑定JSON视图模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!