JavaScript - 提交表单 - 控制器上的特定方法

时间:2013-05-21 10:18:39

标签: jquery asp.net-mvc asp.net-mvc-4

我有一个MVC 4应用程序。我有以下JavaScript函数,只要对ID为'file'的元素进行更改,就会触发该函数。提交工作正常。但是,我想提交当前控制器上的特定操作方法,而不是HTML.BeginForm定义中定义的方法。我对这一切都很陌生,我不知道该怎么做。

如何更改此代码以提交到我的控制器上的命名操作方法?

$(function () {
    $("#file").change(function () {
        $("form").submit();
    });
});

1 个答案:

答案 0 :(得分:4)

您可以在提交表单之前设置操作:

$(function () {
    $("#file").change(function () {
        $("form").attr("action", '@Url.Action("Action", "Controller")');
        $("form").submit();
    });
});

更新:基于对您的要求的更清楚的理解,如果您希望用户在通过更改事件发布时保持在同一页面上,您可以创建一个ajax帖子,如下所示:

$(function () {
    $("#file").change(function () {
        var ajaxData = {
            // initialise your ajax data to pass to post target URL
        };
        $.ajax({
            url: '@Url.Action("Action", "Controller")', // post target URL goes here
            type: 'POST',
            data: ajaxData,
            success: function (data, text) {

            },
            error: function(request, status, error) {

            }
        });
    });
});

jQuery docs中有更多可用于ajax调用的选项。