Asp Core Api Route, который принимает все пути - PullRequest
0 голосов
/ 28 мая 2019

Попытка найти где-нибудь, что объясняет, как создать маршрут, который принимает все запросы, начиная с определенного имени.А также получение информации по этому запросу.Так что примером этого было бы создание маршрута test, который принимает все входящие запросы на получение этого маршрута.

В идеале, то, что поддерживает

[Route("test")]
[ApiController]
public class TestController : ControllerBase
{
    // so that all request that start with 'test' go through this method
    public IActionRequest Process() {

    }
}

1 Ответ

0 голосов
/ 28 мая 2019

Подход 1:

[Route("test/{*any}")]
[ApiController]
public class TestController : Controller
{

    // so that all request that start with 'test' go through this method
    public IActionResult Process()
    {
        return new JsonResult(new{
            a = 1,
        });
    }

}

Подход 2:

зарегистрировать маршрут общего доступа:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
    routes.MapRoute(
        name:"routeAny",
        template:"test/{*any}",
        defaults: new{
            Controller = "Test",
            Action = "Process",
        }
    );
});

И удалите атрибут [ApiController], так как для него требуется [Route()]:

<strike>[ApiController]</strike>
public class TestController : Controller
{

    // so that all request that start with 'test' go through this method
    public IActionResult Process()
    {
        return new JsonResult(new{
            a = 1,
        });
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...