我试图通过以下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)
控制器动作中的术语参数按预期收到,但城市参数未按预期收到该值。任何人请提供此问题的解决方案。
答案 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;
}
});