0

我有一个要提交两次的表格。

我在此处此处查看了类似的与 jQuery 相关的问题,并在此处查看了谷歌组,但未能找到解决方案。

由于我是 Knockout.js 的新手,也许我遗漏了一些明显的东西?我想了解为什么会这样。这是我所拥有的:

表格:

<form data-bind="submit: Save">
 <div class="span11">
@foreach (var prop in ViewData.ModelMetadata.Properties)
{      
  @Html.Label(prop.PropertyName, new { @class = "attribute-label" })
  @Html.TextBox(prop.PropertyName, "", new { data_bind = "value: " + prop.PropertyName + "" })

}

</div>
<br />
<button type="submit" class="btn" data-bind="enable: IsEnabled">Update                    
</button>
</form>

视图模型:

var viewModel = @Html.Raw(Json.Encode(Model));

viewModel.Save = function() {            

        $.ajax({
            url: '@Url.Action("UpdateEmployee")',
            contentType: 'application/json; charset=utf-8',
            type: "POST",
            data: ko.toJSON({ employee: viewModel }),

            success: function(result) {
                //...

            },

            error: function(xhr, ajaxOptions, thrownError) {
               //...

            }
        });

    };

    $(function() {

        ko.applyBindings(viewModel);

    });
4

1 回答 1

1

鉴于您向我们展示的代码,它没有理由提交两次。可能发生的情况是您有一些其他代码被调用,这些代码显式调用该Save()函数,这使得它看起来提交了两次。

我写了一个小提琴来模仿你所展示的,它没有你描述的同样的问题。

小提琴

于 2013-05-24T17:52:12.070 回答