MVC PartialViewResult не запускается в Dropdownlist для измененного события (событие инициируется, PartialViewResult нет) - PullRequest
0 голосов
/ 05 ноября 2018

Привет всем и спасибо, что прочитали это.

У меня такой же сценарий уже работает благодаря Стивену Мюке его ответу

Единственное отличие здесь заключается в том, что я не хочу, чтобы данные частичного просмотра загружались из значения поиска в текстовом поле, а из выпадающего списка для выбора.

Мне удалось заставить работать событие .on ("change", ...), но мое "действие" PartialViewResult по какой-то причине не выполнено. У меня нет ошибок в консоли, поэтому я не думаю, что это JS / JQuery.

Вот что у меня есть:

Частичное представление:

    @Html.DropDownListFor(p => p.SelectedSupplier, Model.SuppliersSelectList, new { @class = "form-control col-md-5", @id = "dropdownSuppliers" })

(Product) Контроллер:

   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>

Ссылка на PartialView:

 <div class="col-md-12 tab-pane fade float-left" id="panel6" role="tabpanel" style="margin-right:0;">

                    @Html.Partial("_ProductDetail")

                </div>

Я протестировал несколько способов, с предупреждениями, чтобы увидеть, был ли выполнен мой JS, и это, у меня есть идентификатор выбранного элемента в раскрывающемся списке, только я не могу ударить мой PartialViewResult в моем контроллере.

Я могу использовать @ onchange = "this.form.submit ();" в моем раскрывающемся списке, но это не то, что я хочу, у меня есть половина страницы, которая должна оставаться статичной, другой, на основе выбора в раскрывающемся списке, поскольку он должен загружать данные, относящиеся к этому выбору.

Может кто-нибудь сказать мне возможные причины, почему это не запускает мой PartialViewResult?

Заранее спасибо! С уважением

1 Ответ

0 голосов
/ 05 ноября 2018

Попробуйте передать только один параметр. Измените свой метод на

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

Во многих случаях движок ASP.MVC не может выполнить привязку к методу, в котором есть более одного параметра. Я надеюсь, что помог вам

...