将更改的项目从 DropDownListFor 获取到另一种形式

Get changed item from DropDownListFor into another form

我有 3 个表单,每个表单都可以在服务器端访问自己的 Delete/Create/Edit 操作。

如何让我的 Create/Edit 表单知道我在 DropDownListFor 中所做的更改?

传递初始标题值适用于 Create/Edit 操作。所以问题是更改事件。

index.cshtml

@using (Html.BeginForm(MVC.Configuration.Addresses.ActionNames.Delete, MVC.Configuration.Addresses.Name, new { @area = MVC.Configuration.Name }, FormMethod.Post, HtmlAttributes.Form))
        {

            <div class="form-group required">
                @Html.LabelFor(m => m.Title, HtmlAttributes.Label)
                <div class="col-md-6">
                    @(Html.Kendo().DropDownListFor(m => m.Title)
                                  .BindTo(Model.Addresses.OrderBy(order => order.Text))
                                  .HtmlAttributes(HtmlAttributes.KendoControl))
                </div>
            </div>

            <input type="submit" value="Delete" class="btn btn-default" />
        }

        @using (Html.BeginForm(MVC.Configuration.Addresses.ActionNames.Edit, MVC.Configuration.Addresses.Name, new { @area = MVC.Configuration.Name }, FormMethod.Get, HtmlAttributes.Form))
        {
            @Html.HiddenFor(p => p.Title)
            <input type="submit" value="Edit" class="btn btn-default" />
        }
        @using (Html.BeginForm(MVC.Configuration.Addresses.ActionNames.Add, MVC.Configuration.Addresses.Name, new { @area = MVC.Configuration.Name }, FormMethod.Get, HtmlAttributes.Form))
        {
            @Html.HiddenFor(p => p.Title)
            <input type="submit" value="Add" class="btn btn-default" />
        }

您可以使用带有多个按钮的 1 个表单,您将获得想要的结果,并且您的视图会更清晰。

据我所知主要有两种方法:

  • 1 MVC Action:您可以检查 MVC action 中点击提交按钮的值,然后执行所需的操作。假设您的按钮名称为 "submitButtonName".

[HttpPost] public ActionResult YourAction(string submitButtonName, YourFormModel model) { switch (submitButtonName) { case "create": CreateMethod(model); break; case "edit": EditMethod(model); break; case "delete": DeleteMethod(model); break; } }

  • 3 MVC 操作:您可以使用 javascript 更改按钮单击时的表单目标操作。假设您的按钮具有 class "submitButtonClass".

    的示例

    $(".submitButtonClass").on("click", function(e){ e.preventDefault(); $('#yourFormId').attr('action', $(this).val()).submit(); });

我在没有测试的情况下快速编写了代码,但它应该可以工作:)

祝你有愉快的一天,

阿尔贝托