Я не могу найти какую-либо документацию / подробности о формате поля шаблона конечных точек промежуточного программного обеспечения. Или конечные точки вообще на самом деле. Только примеры сценариев общего использования для маршрутизации.
Я хотел бы принять запрос типа:
example.com/anything1/anything2
и отправить его по адресу:
example.com/Home/Display?var1=anything1&var2=anything2
Браузер должен отображать исходный запрос, а не изменять.
Моя конечная цель - вернуть home
макет контроллера с view
получением данных из базы данных.
Я подбрасывал на него случайные данные, чтобы посмотреть, что их нарушает, но не смог понять, что работает.
pattern: "{custompath}/{custompage}");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "notDefault",
pattern: "{area:exists}/{controller=Content}/{action=Index}/{id?}");
});
Это текущая настройка по умолчанию, которая работает с моими областями и контроллерами, но я не до конца понимаю, почему.
Последнее обновление В статье о миграции с ядра 2.2 на 3 asp.net говорится, что«Маршрутизация конечной точки поддерживает тот же синтаксис шаблона маршрута и функции создания шаблона маршрута, что и IRouter». https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#mvc-service-registration
Нет ссылок на ожидаемый синтаксис, но я нашел несколько старых статей, в которых есть информация. Будучи полезными, они все еще неполны и / или неточны. При применении логики я обнаружил ошибки. Это было наиболее информативно. https://aspnetcore.readthedocs.io/en/stable/fundamentals/routing.html
Некоторые маршруты работают, но ломаются, когда я добавляю другие. Например, этот маршрут, основанный на статье выше, должен приниматься только тогда, когда кто-то вводит «Учетная запись» в качестве первого параметра, но вместо этого при запросе без путей или аргументов он обрабатывает запрос о включении Учетной записи в контроллере следующего маршрута по умолчанию. Но затем возвращает последний маршрут, как и ожидалось.
При запросе https://localhost:port
endpoints.MapControllerRoute(
name: "account",
pattern: "Account/{controller=Dashboard}/{action=Overview}",
defaults: new { area = "Account" });
endpoints.MapControllerRoute(
name: "manage",
pattern: "Manage/{controller=Content}/{action=Index}",
defaults: new { area = "Manage" });
endpoints.MapControllerRoute(
name: "default",
pattern: "",
defaults: new { controller = "Content", action = "Display", path = "Public", page = "Index" });
он обрабатывает запрос на https://localhost:port/Account/Content/ и с содержимым от https://localhost:port/Content/Display/
Я ожидал, что, когда я не введу «Учетная запись» или «Управление», он провалится на пустой маршрут и остановится там. Но кажется, что после того, как он туда добирается, он делает что-то ещеПоловина того, что я хочу, достигнута, лол.