Я добавил ApiController в мое приложение asp.net core 2.2, и асинхронные вызовы из пользовательского интерфейса не совпадают.
Вот мои маршруты в Startup.cs.
app.UseMvc(config =>
{
config.MapRoute(
"Api",
"api/{controller}/{action}/{id?}"
);
config.MapRoute(
"Default",
"{controller=App}/{action=Index}/{id?}"
);
});
Вот одна из функций javascript, которая выполняет различные запросы GET к контроллеру API.
function clearAllFilters() {
$.get({
url: "/api/GridFilter/ClearAllFilters",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
console.log('filters cleared');
}
});
}
Вот API-контроллер:
[Route("api/[controller]")]
[ApiController]
public class GridFilterController : ControllerBase
{
private static readonly string[] FilterFields = {
// Bunch of strings, omitted for brevity
};
[HttpGet]
public IActionResult ClearAllFilters()
{
foreach (string column in FilterFields)
{
if (HttpContext.Session.TryGetValue(column, out byte[] savedJson))
{
HttpContext.Session.Remove(column);
}
}
return Ok(true);
}
Почему asp.net не соответствует этому?Мой URL-адрес / api / controller / action выглядит так, как будто он соответствует первому маршруту, который отображается при запуске.