我正在尝试向表单添加搜索功能。它是一个多选列表框,填充了类别,选中后会使底部的表格相应地进行过滤。因此,我有两种形式,顶部的一种是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>
}
答案 0 :(得分:0)
我修复了它,基于Stephen建议检查包(它在那里),我卸载它,然后从nuget安装了一个新的副本。现在它工作得很好,我不知道它为什么以前不会工作(过时或腐败?)。谢谢你的帮助斯蒂芬。