MVC PartialViewResult not triggered on Dropdownlistfor changed event(事件被触发,PartialViewResult 没有)

MVC PartialViewResult not triggered on Dropdownlistfor changed event (event is triggered, PartialViewResult is not)

大家好,感谢您阅读本文。

由于 Stephen Muecke

,我已经有了相同的场景

这里唯一的区别是我不希望局部视图从文本框搜索值加载数据,而是从下拉列表中加载数据以供选择。

我已经设法让 .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");
    }

Javascript 在调用 PartialViewResult 的常规视图中:

 <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>

引用分部视图:

 <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 的可能原因吗?

提前致谢! 亲切的问候

尝试只传递一个参数。 将您的方法更改为

public PartialViewResult SupplierChanged(int selectedSupplierId)
{     
    // perform logic and load new data into the partial view
    return PartialView("_ProductDetail");
}

在很多情况下,引擎ASP.MVC 无法绑定到获得更多参数的方法。 希望对你有帮助