将Knockout视图模型传递给mvc控制器

时间:2014-04-07 09:20:20

标签: c# asp.net-mvc knockout.js

我需要将一个淘汰视图模型传递给mvc控制器如何使用ajax实现它?

这是我的代码:

模型是强类型对象

 @model EventWizardViewModel
 @{
     var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model));
 }

  <button data-bind="click: create"> Submit</button>
  <script>
    $(function () {
        $(".date").kendoDateTimePicker({
            value: new Date()
        });
        $("#wizard").smartWizard();

        var vm = ko.mapping.fromJSON('@Html.Raw(jsonData)');
        vm.create = function () {
            $.ajax({
                type: "GET",
                data: {
                    "param":vm
                },
                url: "/CreateEvent/"
            })
            .done(function(data) {

            });
        };
        ko.applyBindings(vm);
    })
</script>

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一点,但从根本上说,您通常会使用JSON调用在前端和后端之间传递数据,通常是{{1}格式。

Passing knockout.js observablearray object to MVC Controller Action?

注意回答调用JSON将可观察数组转换为..ko.toJSON(viewModel.AccessLevels)..字符串,该字符串将由服务器端由JSON控制器处理示例