ASP. NET Core 3.1 Razor Page Rouge Неоднозначное соответствие Исключение - PullRequest
0 голосов
/ 22 апреля 2020

На бритвенных страницах я даю пользователю возможность сравнить до 3 продуктов. Это работает для 2 правильно, но когда я открываю ссылку для 3 продукта, это дает мне «AmbiguousMatchException»

Мой маршрут в Startup.cs как показано ниже:

options.Conventions.AddPageRoute("/Compare", "compare/{ProductCode1}(vs){ProductCode2}(vs){ProductCode3}");
options.Conventions.AddPageRoute("/Compare", "compare/{ProductCode1}(vs){ProductCode2}");
options.Conventions.AddPageRoute("/Compare", "compare/{ProductCode1}");

Он обрабатывает "/ сравнить / p1 "для 1-го продукта" / сравнить / p1 (против) p2 "для p1 и p2

, но вызывает ошибку для URL ниже, однако я определил ее на первом маршруте" / сравнение / p1 (против) p2 (vs) p3 "

и ошибка смешная:

AmbiguousMatchException: The request matched multiple endpoints. Matches:
/Compare
/Compare
/Compare

Это правильно, я определил эту страницу для всех 3 маршрутов, что случилось с 3-м продуктом ??

1 Ответ

0 голосов
/ 23 апреля 2020

Я решил проблему, заменив все маршруты на один и разделив этот один параметр на все коды продуктов.

...