У меня стандартная asp настройка основных маршрутов:
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
Затем у меня есть 4 действия (2 получения и 2 публикации):
public async Task<IActionResult> Edit(int? id)
{...}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, CustomDTO customDTO)
{...}
public async Task<IActionResult> Review(int? id)
{...}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Review(int id, DifferentCustomDTO differentCustomDTO)
{...}
Запускается бритва формы обзора вот так:
<form asp-action="Review">
Оба URL-адреса выглядят так:
https://localhost/MyController/Review/12
В нормальных условиях действие POST будет получать свой идентификатор из значения URL-адреса, а CustomDTO из представленных данных формы . Это работало до недавнего времени. Я начал получать это:
This localhost page can’t be found No webpage was found for the web address:
https://localhost/MyController/Review/12
HTTP ERROR 404
Я попытался удалить 2 из 4, чтобы увидеть, есть ли какой-то конфликт, но это ничего не изменило. Как мне найти то, что я напортачил?