首页 > 解决方案 > 如何将 Ajax 参数传递给 ASP.NET Core 中的控制器

问题描述

我使用select2 js创建了一个选择并创建了 ajax 请求:

$('#slcCidade').select2({
    ajax: {
        type:'POST',
        url: '/get-cidade',
        minimumInputLength: 3,
        data: function (params) {
            var query = {
                search: params.term
            }
            return query;
        },
        processResults: function (data) {

            return {
                results: data.items
            };
        }
    }
});

在我的控制器中,我有以下方法来获取数据,然后它返回到我的页面:

 [Route("get-cidade/{search:regex(^[[a-zA-Z]])}")]
    [HttpPost]
    public async Task<JsonResult> GetCidade(string search)
    {
        var lstCidadesVM = _mapper.Map<IEnumerable<CidadeViewModel>>(await _cidadeBLL.GetByNome(search));
        return new JsonResult(new { Data = lstCidadesVM });
    }

请求永远不会返回到我的控制器并分析请求我看到发生了 404 错误

Request URL: https://localhost:44394/get-cidade?search=curvelo
Request Method: GET
Status Code: 404 Not Found
Remote Address: [::1]:44394
Referrer Policy: no-referrer-when-downgrade

我在哪里做错了?我只需要通过 AJAX 输入搜索词从我的控制器调用该方法。

谢谢!

标签: ajaxasp.net-coreroutesjquery-select2

解决方案


我认为您正在实施的路线主要是'/get-cidade/curvelo',没有任何数据作为参数传输。


推荐阅读