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

时间:2016-01-07 10:32:16

标签: javascript jquery asp.net-mvc forms asp.net-mvc-5

我有一个带有两个下拉列表的MVC5设置,当选择一个值时,通过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');
    });
});

这里的诀窍是,我使用How do you handle multiple submit buttons in ASP.NET MVC Framework?来支持后端的多个提交目标。

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

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

更新

我从来没有设法让这个工作。相反,我用自己的形式包围了每个Select。

1 个答案:

答案 0 :(得分:0)

我希望我的回答能帮到你。您可以使用JQuery AJAX。

首先下拉

$("#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
        }
    });
});