У меня есть проект, написанный на C # поверх платформы ASP.NET Core 2.2.
В моем приложении много URL-адресов, которые отправляются поисковым системам. Я хочу сделать URL-адреса немного короче, поэтому я решил создать новый маршрут и перенаправить старый ORL на новый.
Это то, что я сделал
[Route("Listings/details/{id}/{name:slugify}", Name = "Details")]
public IActionResult Details(InfoVM model)
{
return RedirectToRoutePermanent("NewDetails", model);
}
[Route("i/{id}/{name:slugify}", Name = "NewDetails")]
public IActionResult Info(InfoVM model)
{
// do something with the model before passing it to the view
return View(model);
}
Теперь, когда я иду на /i/123/some-slug
, это работает! Однако, когда я перехожу на /Listings/details/123/some-slug
, я получаю следующую ошибку
InvalidOperationException: ни один маршрут не соответствует предоставленным значениям.
Ожидается, что конечная точка /Listings/details/123/some-slug
перенаправит меня на /i/123/some-slug
с HTTP-кодом 301.
Как я могу перенаправить на новый маршрут навсегда?