asp - действие не работает правильно в области с маршрутизацией конечной точки - PullRequest
0 голосов
/ 01 марта 2020

я использую. net core 3.1.1

в mvc области, когда я использую asp -действие, подобное этому

<a  asp-action="Index2">Index2</a>

не генерировать ссылку правильно (пропущено название области)

создать ссылку: http://localhost: 49770 / Home / Index2

, но правильная ссылка http://localhost: 49770 / admin / Home / Index2

я использую маршрутизацию в конечной точке

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

            endpoints.MapAreaControllerRoute(
                "area",
                "Admin",
                "{area:exists}/{controller=Home}/{action=Index}/{id?}"

            );
        });

, но когда используется более старая маршрутизация (используйте mvc) asp - действие генерирует ссылку правильно

http://localhost: 49770 / admin / Home / Index2

 app.UseMvc(routes =>
    {
      routes.MapRoute(
        name : "areas",
        template : "{area:exists}/{controller=Home}/{action=Index}/{id?}"
      );
    });

любой может помочь мне с использованием маршрутизации в конечной точке asp - действие, спасибо

1 Ответ

0 голосов
/ 02 марта 2020

Вы должны изменить порядок, чтобы сначала сделать маршрут Области:

endpoints.MapAreaControllerRoute(
    "area",
    "Admin",
    "{area:exists}/{controller=Home}/{action=Index}/{id?}"


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

, чтобы <a asp-action="Index2">Index2</a> создавал ссылку на метод действия той же области.

...