3

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

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

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

1 回答 1

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 文档中有更多可用于 ajax 调用的选项。

于 2013-05-21T10:41:39.777 回答