我有一个MVC 4应用程序。我有以下JavaScript函数,只要对ID为'file'的元素进行更改,就会触发该函数。提交工作正常。但是,我想提交当前控制器上的特定操作方法,而不是HTML.BeginForm定义中定义的方法。我对这一切都很陌生,我不知道该怎么做。
如何更改此代码以提交到我的控制器上的命名操作方法?
$(function () {
$("#file").change(function () {
$("form").submit();
});
});
答案 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调用的选项。