knockoutjs 提交时出现 ko.utils.postJson 问题

2024-01-08

我跟着http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/ http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/使用 ko.utils.postJson 提交数据并从控制器导航到不同视图的文章

I used ko.utils.postJson(location.href, {model: ko.toJson(viewModel)});提交数据,但提交到服务器的模型具有空属性。

ko.utils.postJson(location.href, {model: viewModel});也失败了。

客户端 viewModel 比服务器模型具有更多属性,但我相信如果它与 $ajax post 方法一起使用,它应该与 KO post 一起使用

如果我按照下面的方式传递模型,它就会起作用

ko.utils.postJson(location.href, 
    {model: {P1:this.p1(), P2:this.p2(), P3: this.p3()}}); 

我必须在提交之前绘制每个属性的地图吗?何时使用 () 作为 viewModel 属性也确实令人困惑

服务器代码

 [HttpPost]
        public ActionResult SearchProperty([FromJson]MyModel model)
        {
            try
            {
                return View("XYZ", model);
            }
            catch (Exception e)
            {
            }
        }

Knockout 提供了一个实用函数,可以将包含可观察值的对象转换为纯 JavaScript 对象。效用函数是ko.toJS。所以,如果你这样做:

   { model: ko.toJS(viewModel) }

然后,它将处理展开所有可观察到的内容。

除此之外,还有一个功能ko.toJSON这将做一个ko.toJS然后做JSON.stringify关于结果。当您确实需要 JSON 而不是 JavaScript 对象时,这非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

knockoutjs 提交时出现 ko.utils.postJson 问题 的相关文章