ajax传递knockout对象的值

在实际应用中我们将各个文本框用ko进行了绑定之后,此时用户填好各个文本框的值之后,就需要提交表单了,以前,我们获取各个文本框的值用的是Jquery的val()方法,例如,我们要获取用户名的值,则这样获取:var UserName=$("#UserName").val()

,但用到了knockout对各个文本框进行了绑定之后,则可以这样传值:

前端代码:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<head>
    <script src="~/Scripts/Knockout.js"></script>
    <script src="~/Scripts/knockout-map.js"></script>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/jquery.json.min.js"></script>


    <script>
        $(function () {
            var ViewMode={};
            ViewMode =function () {
                this.UserName = ko.observable("张三");
                this.Age = ko.observable("21");               
            };
      
            ko.applyBindings(ViewMode);                    
            var Model = new ViewMode();
            var temp = ko.mapping.toJS(Model);// ko.mapping.toJS:将ko对象转换为JS对象
            var Json = $.toJSON(temp);//将JS对象序列化为JS字符串

            $("#btn1").click(function ()
            {
                $.ajax(
                    {
                        url: "/Test/Create",
                        data: { "param": Json },
                        ansyc: true,
                        type: "post",
                        datatype: "json",
                        success: function (data)
                        {

                        }
                    });
            });
            
        });
    </script>
</head>
<body>
    姓名:<input type="text"  data-bind="value:UserName"/><br />
    年龄:<input  type="text"  data-bind="value:Age">
    <input type="button" value="确定" id="btn1" />
</body>

此处需要注意的是,如果发现浏览器报$.toJSON is not a function这个错误,而你又引用了jquery.json,则很可能是Jquery的$冲突,则可以这样:


后端代码:

 public ActionResult Create(string param)
        {
            //此处对Json字符串参数param序列化对象,然后在处理你需要的逻辑

            return View();
        }

关于Jquery的冲突,大家可以看我这边文章:https://blog.csdn.net/qq_33265875/article/details/80654261

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值