Обычная маршрутизация не работает для простого контроллера смещения только с помощью метода Get () - PullRequest
0 голосов
/ 10 июля 2019

У меня есть простой веб-API ядра ASP с чистым контроллером, который возвращает true для запроса Get. NudgeController.cs выглядит следующим образом:

public class NudgeController : Controller
{
    public IActionResult Get()
    {
        return Ok(true);
    }
}

В StartUp.cs у меня есть следующие настройки:

private static void ConfigureRoutes(IApplicationBuilder app)
{
    app.UseMvc(routes =>
            routes.MapRoute(
                    name: "nudgeRoute",
                    template: "api/{controller}"));                 
}

ConfigureRoutes вызывается в Configure(IApplicationBuilder app, IHostingEnvironment env) метод в StartUp.cs

При локальном запуске и переходе на http://localhost:56103/api/Nudge Я получаю ошибку 404? чего здесь не хватает? а также Есть ли разница между ядром WebApi и Asp.net при настройке обычной маршрутизации?

1 Ответ

1 голос
/ 10 июля 2019

Шаблон маршрута не указывает никаких действий. Вы предполагаете, что Get нужно просто волшебным образом вызывать, но ASP.NET Core не знает этого и не делает подобных предположений. Следующее должно это исправить. Это делает Get действием по умолчанию, если в маршруте не указан сегмент действия.

app.UseMvc(routes =>
    routes.MapRoute(
        name: "nudgeRoute",
        template: "api/{controller}/{action=Get}"));
...