如何从ajax自动完成方法

时间:2017-08-21 11:32:22

标签: jquery ajax

我试图通过以下ajax代码将一个额外的参数从ajax传递给控制器​​动作函数

   $('.search-box-text').autocomplete({

                    delay: 500,

                    minLength: 3,

                    //CitySearchAutoComplete

                   @*source: '@(Url.RouteUrl("ProductSearchAutoComplete"))',*@

                    source: '@(Url.RouteUrl("GetAllProductsName"))',

                   @*source: '@Url.Action("SearchTermAutoComplete", "Catelog")',*@

                    //appendTo: '.search-box',

                    extraParams: { city: 'new' },

                    select: function(event, ui) {

                        $('.search-box-text').val(ui.item.label);

                        return false;
                    }

                });
控制器动作的原型如下:

public ActionResult GetAllProductsName(string term,string city)
控制器动作中的

术语参数按预期收到,但城市参数未按预期收到该值。任何人请提供此问题的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以按照指示here

对您的来源使用ajax调用
$('.search-box-text').autocomplete({

        delay: 500,
        minLength: 3,

        source: function(request, response)
        {
            $.ajax({
                url: '@(Url.RouteUrl("GetAllProductsName"))',
                data: {
                    term: 'myterm'
                    city: 'mycity',

                },
                success: function( data ) {
                    response( data );
                }
            });
        },

        select: function(event, ui) {

            $('.search-box-text').val(ui.item.label);

            return false;
        }

});