Как настроить неявную маршрутизацию в .net core 3 - PullRequest
0 голосов
/ 11 ноября 2019

Как определить маршруты неявно? Например, у меня есть контроллер с именем TodoController с некоторыми действиями, такими как Add, Get, Save .. И я не хочу, чтобы для каждого из них указывался атрибут Route.

Это мой код:

public class TodoController : ControllerBase
{
    [HttpPost]
    public IActionResult New()
    {
        return Ok();
    }

    [HttpGet]
    public IActionResult Prova()
    {
        return Ok();
    }

и это мой startup.cs

         if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });

1 Ответ

0 голосов
/ 12 ноября 2019

Мои результаты исследований.

Вы можете использовать 2 типа маршрутизации.

1.

services.AddMvc(option => option.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);



app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller}/{action}",
        defaults: new { controller = "Home", action = "Index" }
    );

});

`

2.

services.AddControllers();
  services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);


app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");

}
);

ОБА вариант работал с атрибутом Rout, но не имеет варианта без него.

...