大家好,谢谢阅读。
,我已经可以使用相同的方案了这里唯一的区别是我不希望局部视图从文本框搜索值中加载数据,而是从下拉列表中加载数据进行选择。
我设法使.on(“ change”,...)事件起作用,但是由于某种原因我的PartialViewResult“ action”未命中。我在控制台中没有错误,所以我不认为它的JS / JQuery。
这就是我所拥有的:
部分视图:
@Html.DropDownListFor(p => p.SelectedSupplier, Model.SuppliersSelectList, new { @class = "form-control col-md-5", @id = "dropdownSuppliers" })
(产品)控制器:
public PartialViewResult SupplierChanged(int selectedSupplierId ,ProductViewModel model)
{
// perform logic and load new data into the partial view
return PartialView("_ProductDetail");
}
在常规视图中调用PartialViewResult的Javascript:
<script type="text/javascript">
$(function () {
$('#dropdownSuppliers').on("change",function () {
//Content to send
var selectedValue = $(this).val();
$.get('@Url.Action("SupplierChanged", "Product")', { "SelectedValue": selectedValue },
function (result) { $('#panel6').html(result); }
);
});
});
</script>
引用PartialView:
<div class="col-md-12 tab-pane fade float-left" id="panel6" role="tabpanel" style="margin-right:0;">
@Html.Partial("_ProductDetail")
</div>
我已经测试了几种方法,并通过警报来查看我的JS是否已执行,而且是,我在下拉列表中具有所选项目的ID,只是我似乎无法在控制器中命中我的PartialViewResult。
我可以在下拉菜单中使用 @onchange =“ this.form.submit();” ,但这不是我想要的,我有一半页面必须保持静态,另一个,基于下拉列表中的选择,因为它应该加载与该选择相关的数据。
有人可以告诉我为什么不触发我的PartialViewResult的可能原因吗?
先谢谢您! 问候
答案 0 :(得分:1)
尝试仅传递一个参数。 将您的方法更改为
public PartialViewResult SupplierChanged(int selectedSupplierId)
{
// perform logic and load new data into the partial view
return PartialView("_ProductDetail");
}
在很多情况下,引擎ASP.MVC无法绑定到具有多个参数的方法。 希望对您有帮助