MVC 5如何在表单中提交ajax搜索

时间:2014-11-08 05:18:53

标签: ajax asp.net-mvc post model-view-controller get

我正在尝试向表单添加搜索功能。它是一个多选列表框,填充了类别,选中后会使底部的表格相应地进行过滤。因此,我有两种形式,顶部的一种是ajax搜索请求。我有另一种形式的隐藏,用于实际需要发布时选择的类别。问题是当我点击搜索时,两个表单都发布了,它似乎没有注册表单在另一个表单之外的事实。我无法弄清楚如何让第一个表单成为get请求,我以为我在选项中配置它,但显然我错过了一些东西。

@using (Ajax.BeginForm(
    new AjaxOptions
    {
        HttpMethod = "get",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "vendorList"
    }))
{
    <div class="form-group col-sm-12">
        <div class="col-md-3">
            @Html.LabelFor(model => model.catIds, new { @class = "control-label col-md-2" })
        </div>
        <div class="col-sm-6">
            @Html.ListBoxFor(model => model.catIds, new MultiSelectList(Model.Categories, "Value", "Text", Model.catIds), new { @class = "chzn-select", data_placeholder = "Select  Categories..." })
            @Html.ValidationMessageFor(model => model.catIds)
            <input type="submit" value="Search" />

        </div>
    </div>
}

这是另一种形式......

@using (Html.BeginForm("Create", "item", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.HiddenFor(model => model.catIds)

        @Html.AntiForgeryToken();

...attribute setting

                <div class="form-group col-sm-12" id="vendorList">
                    <div class="post-title" style="margin-top: 0em">
                        <h3 style="left:auto">Invite Vendors</h3>
                    </div>
                    <div class="col-sm-9">
                        <table class="table table-striped">
                            <thead>
                                <tr>
                                    <td>
                                        <button type="button" class="btn btn-default btn-xs" id="checkall">
                                            <span class="glyphicon glyphicon-ok"></span> Select All
                                        </button>
                                    </td>
                                    <td><b>VENDOR #</b></td>
                                    <td><b>VENDOR</b></td>
                                </tr>
                            </thead>
                            <tbody id="checkboxes">

                                @foreach (var item in Model.AllVendorUsers)
                                {
                                    <tr>
                                        <td>
                                            <input type="checkbox" name="InvitedVendors" value=@item.Id>
                                        </td>
                                        <td>
                                            @item.CompanyName
                                        </td>

                                        <td>
                                            @item.User.PhoneNumber
                                        </td>
                                    </tr>
                                }
                                <tr>
                                    <td>
                                        <button type="submit" id="btn_Create" class="btn pull-right" value="Create">Finish</button>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    }

1 个答案:

答案 0 :(得分:0)

我修复了它,基于Stephen建议检查包(它在那里),我卸载它,然后从nuget安装了一个新的副本。现在它工作得很好,我不知道它为什么以前不会工作(过时或腐败?)。谢谢你的帮助斯蒂芬。