. NET Core 3.0 Маршрутизация по умолчанию в область - PullRequest
0 голосов
/ 25 февраля 2020

В настоящее время я работаю над проектом. Net Core 3.0, и у меня возникают проблемы с маршрутизацией по умолчанию с использованием UseEndpoints в функции Configure при запуске.

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

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

    endpoints.MapAreaControllerRoute(
    name: "areas",
    areaName: "areas",
    pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
});

Я хочу, чтобы маршрутизация по умолчанию была такой же, как MapAreaRoute, но у меня возникли проблемы при этом. В настоящее время маршрутизация работает должным образом, так как я добавил метод RedirectToAction в HomeController за пределами области

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return RedirectToAction("Index", "Home", new { area = "default" });
    }
}

Есть ли другой способ сделать это? Я попытался добавить один и тот же шаблон для обоих маршрутов и немного поработал с ним, но ни один из них, похоже, не работает. Для справки у меня есть проект. Net core 2.1 с аналогичной настройкой, и у меня не было проблем с ним

//NOTE, this is from the .Net Core 2.1 project and is using UseMvc and not UseEndpoints
app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "areas",
        template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    routes.MapAreaRoute(
        name: "default",
        areaName: "Users",
        template: "{controller=Home}/{action=Index}/{id?}");
});

TLDR: возникают проблемы с маршрутизацией по умолчанию на контроллер области без использования метода RedirectToAction в контроллере за пределами Района

...