【问题标题】:MVC PartialViewResult not triggered on Dropdownlistfor changed event (event is triggered, PartialViewResult is not)MVC PartialViewResult 未在 Dropdownlistfor changed 事件上触发(事件已触发,PartialViewResult 未触发)
【发布时间】:2018-11-05 14:19:45
【问题描述】:

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

感谢Stephen Mueckehis answer,我已经有相同的场景了

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

我已经设法让 .on("change", ...) 事件正常工作,但我的 PartialViewResult“动作”由于某种原因没有被击中。我在控制台中没有错误,所以我认为它不是 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 的可能原因?

提前感谢您! 亲切的问候

【问题讨论】:

    标签: jquery onchange html.dropdownlistfor asp.net-mvc-partialview


    【解决方案1】:

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

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

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

    【讨论】:

    • 哦,天哪,它有效...非常感谢,我没想到...这怎么不起作用?它应该工作还是不工作?再次感谢您!
    • 当您使用 from javascript 方法或从 WebApi 调用控制器时,总是会发生这种情况。复杂类型(2个以上参数),引擎ASP.NEt不支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多