如何从jquery路由到控制器api?

如何从jquery路由到控制器api?,jquery,asp.net-core,routes,asp.net-core-mvc,Jquery,Asp.net Core,Routes,Asp.net Core Mvc,我有一个无法解决的问题 我有一个文本框。对于这个文本框,我有一个jquery自动完成函数。Jquery正在工作,但无法运行 错误代码为404,因此我的路由无法正常工作。 我希望有人能帮助我。 多谢各位 Jquery <script> $(document).ready(function () { $("#TabakName").autocomplete({ source: 'api/tabaksuche/search

我有一个无法解决的问题

我有一个文本框。对于这个文本框,我有一个jquery自动完成函数。Jquery正在工作,但无法运行 错误代码为404,因此我的路由无法正常工作。 我希望有人能帮助我。 多谢各位

Jquery

<script>
    $(document).ready(function () {
        $("#TabakName").autocomplete({
            source: 'api/tabaksuche/search',
           
        });
    });
</script>
[HttpGet(“搜索”)]
属性重写控制器的路由。因此,您的操作将通过/search而不是/api/tabaksuche/search进行访问。 将您的
HttpGet
属性更改为
[HttpGet(“api/TabakSuche/search”)]
将解决您的问题

控制器:

[HttpGet("api/TabakSuche/search")]
public async Task<IActionResult> Search()
{
    ...
}

上面的代码将始终生成正确的路线


您可以阅读更多信息。

您是否检查了浏览器的调试器以了解此请求发送到哪个地址?似乎您必须将
参数更改为
/api/tabaksuche/search
。这是调试器中的GET Url。我也尝试过/api/tabaksuche/search,但没有成功。非常感谢。成功了。我将明确阅读有关Url的信息。操作助手:)
    app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
[HttpGet("api/TabakSuche/search")]
public async Task<IActionResult> Search()
{
    ...
}

<script>
    $(document).ready(function () {
        $("#TabakName").autocomplete({
            source: '@Url.Action("Search", "Tabaksuche")',
        });
    });
</script>