#asp.net-core #.net-core
#asp.net-ядро #.net-ядро
Вопрос:
Я собираюсь перенаправить на страницу с кодом состояния 302.
public IActionResult test()
{
///some logic
return RedirectPermanent("www.google.com");
}
Однако после того, как я использовал RedirectPermanent
метод, получаю только код состояния 301.
Как я могу это решить? Спасибо.
Ответ №1:
Вы использовали метод RedirectPermanent
, при котором соответствующий код состояния 301 перемещается постоянно
Если вам нужно 302 (найдено), попробуйте использовать Redirect
-Метод
Вы можете посмотреть это здесь
Обновление: окончательное решение в комментариях
Другой идеей может быть создание ‘ActionFilter’ для этого конкретного случая использования. Вы можете использовать метод перенаправления, а в методе OnActionExecuted ActionFilter вы можете вручную изменить код состояния на 302
Комментарии:
1. Я нашел это. Однако так странно, что нет общедоступного абстрактного перенаправления void (расположение строки, bool permanent); в Visual Studio даже я использовал asp.net ядро 6.
2. В чем причина того, что вам нужно 302 в этом случае? Потому что 301 выражает именно то, чего вы хотите достичь
3. Я хочу противостоять веб-сканеру. При наличии вероятного веб-сканера он перенаправит на страницу с кодом состояния 302, чтобы проверить ее с помощью Google Recaptcha.
4. Другой идеей может быть создание «ActionFilter» для этого конкретного случая использования. Вы можете использовать этот
Redirect
метод, а вOnActionExecuted
Методе ActionFilter вы можете вручную изменить код состояния на 3025. Спасибо. Позвольте мне попробовать этот способ.