У меня есть настройка маршрута по области в моем веб-приложении .net core 3.1:
Startup.cs / Configure ():
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(name: "secure-route", areaName: "Secure", pattern: "Secure/{controller=Dashboard}/{action=index}/{id?}");
});
Маршрутизация для этого работает нормально, все страницы в / secure работают нормально. Однако, когда я пытаюсь добавить ссылки или опубликовать форму в любом из представлений, я получаю странные URL-адреса в формате:
https: // localhost: 44370 / MyController / Edit? area = secure
Это должно быть: https: // localhost: 44370 / Secure / MyController / Edit
Есть идеи, что не так?
Я перепробовал все, что касается помощников по тегам, но проблема, похоже, связана с самой маршрутизацией. Ничего из этого не работает:
<form method="post" asp-controller="MyController" asp-action="Edit" asp-area="secure">
<form method="post" asp-controller="MyController" asp-action="Edit">
<button asp-controller="MyController" asp-action="EditMyEntity">Click Me</button>
[Area("secure")]
наMyController.cs
? И, перейдя на «Ни одна из этих работ», они не отправляли сообщения в неправильные области? Или URL-адреса были сгенерированы некорректно? - person David Liang   schedule 24.11.2020MapAreaControllerRoute()
? - person David Liang   schedule 25.11.2020