Плагин Jquery.cascade изменяет формат URL-адреса Ajax
-
05-07-2019 - |
Вопрос
Я использую jQuery.Каскад плагин в моем приложении Asp.Net MVC.У меня все это работает следующим образом:
jQuery("#CompareModelList").cascade("#CompareManufacturerList", {
ajax: { url: '/Home/Models' },
template: commonTemplate,
match: function (selectedValue) { return this.ManufacturerId == selectedValue;},
});
Однако, когда это срабатывает, оно вызывает действие в моем контроллере с помощью следующего запроса:
http://localhost/Home/Models?val=50
Что я бы предпочел, так это:
http://localhost/Home/Models/50
Теперь в примеры при условии наличия следующего комментария:
Передает выбранное значение родительского параметра select в URL как 'val=', но принимает полный хэш параметров ajax, чтобы вы могли добавлять и другие данные
Итак, я предполагаю, что то, чего я хочу достичь, возможно, но как новичок в jQuery и Ajax я в растерянности относительно того, как это сделать.Кто-нибудь может помочь?
Решение
Плагин Cascade создает параметры AJAX по умолчанию (пример: http://docs.jquery.com/Types#Options) которые являются:
type: "GET", dataType: "json", success: function(json) { $this.trigger("updateList", [json]); }, data: $.extend(_ajax.data,ajax.data,{ val: opt.getParentValue(parent) })
Другими словами, измените строку:
ajax: { url: '/Home/Models' }
Для
ajax: { url: '/Home/Models/' + jQuery( '#CompareManufacturerList' ).val() }
вместо этого.