ASP Не удалось найти страницу POST основной маршрутизации - PullRequest
0 голосов
/ 07 августа 2020

У меня стандартная 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, чтобы увидеть, есть ли какой-то конфликт, но это ничего не изменило. Как мне найти то, что я напортачил?

1 Ответ

2 голосов
/ 07 августа 2020

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

https://localhost/MyController/Review/12

Тогда HTML Тело почтового запроса будет пустым. Попробуйте добавить в форму скрытое поле, например:

@Html.HiddenFor(e => e.Id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...