在单个表单中从下拉列表中多次提交

Multiple Submit from Drop downs in a single Form

本文关键字:提交 下拉列表 单个 表单      更新时间:2023-09-26

我有一个MVC5设置,它有两个Dropdown,当选择值时,它们会通过Javascript自动提交。他们目前在同一个表单中,所以我想让他们在我的后端上提交不同的操作

视图:

<div class="panel-body">
    @using (Html.BeginForm("", "BrugerSession"))
    {
        @Html.AntiForgeryToken()
        <div class="row">
                <div class="col-md-6">
                @Html.LabelFor(model => model.Emails)
                @Html.DropDownListFor(x => x.ValgtEmail, Model.Emails, "Vælg Email")
            </div>
            <div class="col-md-6">
                @Html.LabelFor(model => model.Printere)
                @Html.DropDownListFor(x => x.ValgtPrinter, Model.Printere)
            </div>
        </div>
    }
</div>

JavaScript

$(document).ready(function () {
    $("#ValgtEmail").change(function () {
        $(this).closest('form').trigger('submit');
    });
});
$(document).ready(function () {
    $("#ValgtPrinter").change(function () {
        $(this).closest('form').trigger('submit');
    });
});

这里的诀窍是,我使用的是如何在ASP.NET MVC框架中处理多个提交按钮?以支持后端中的多个提交目标。

为什么主要问题是:Javascript Trigger方法能否以propper的方式提交数据,因此它将与上面链接的解决方案一起工作?

我试着调查http://api.jquery.com/trigger/文档,并支持其他参数。但我知道如何格式化我的Javascript来实现我所需要的。

更新:

我从来没能做到这一点。相反,我用自己的形式包围了每个Select。

我希望我的答案能对你有所帮助。您可以使用JQueryAJAX。

第一次下降

$("#dropdown1").change(function(){
    $.ajax({
        url: '/ControllerName/Action1',
        data: { parm1:parm1 },
        success: function () {
         // Success function
        },
        error: function () {
         // Error message
        }
    });
});

第二次下降

$("#dropdown2").change(function(){
    $.ajax({
        url: '/ControllerName/Action2',
        data: { parm1:parm1 },
        success: function () {
         // Success function
        },
        error: function () {
         // Error message
        }
    });
});