フォームが 2 回送信されています。
同様の jQuery 関連の質問hereとhere、および Google グループhereを調べましたが、解決策を見つけることができませんでした。
私は 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);
});