Knockout asyncCommand / Ajax MVC ActionResults

时间:2015-03-23 14:07:13

标签: javascript jquery asp.net-mvc knockout.js

我对前端开发以及我正在进行的项目(bug修复)都很陌生。我正在使用Knockout / MVC ActionResults。

我的任务是改变一个表单以便它不允许双击提交,我添加了基本的Jquery来禁用按钮,但是被告知它需要使用asyncCommand。

我所注意到的是,所有使用它的例子都会返回一个Json结果等,其中我的结果将是一个动作结果。

我想知道我是否需要改变MVC的行动结果,或者是否有其他方式我只是没有看到。

我希望我可以做类似的事情:

HTML

<button class="btn btn-action" data-bind="command: create, activity: create.isExecuting">Create</button> 

JS

 model.create = ko.asyncCommand({
        execute: function (complete) {
            $.ajax({
                type: 'POST',
                url: "/account/create",
                data: ko.toJSON(data),
                contentType: 'application/json; charset=utf-8',
            });
        complete();
        },
        canExecute: function (isExecuting) {
            return !isExecuting;
        }
    });

CONTROLLER

        public ActionResult Create(Model model, int versionId)
        {

if (success)
                {
                    return Redirect("/accounts");
                }
else
                {
                    return View(model);
                }
}

这真的可以发生吗?

谢谢,

克莱尔

1 个答案:

答案 0 :(得分:0)

我的解决方案是改变ActionResult以将值返回给AJAX。