Как избежать цикла перенаправления в ASP.NET MVC - PullRequest
3 голосов
/ 21 января 2010

В некоторых случаях ошибки я хотел бы перенаправить на контроллер Home, но я хочу убедиться, что я не попадаю в цикл «перенаправления» (исключение генерируется каждый раз, приводя к еще одному перенаправлению) Каков наилучший способ сделать это?

Ответы [ 3 ]

3 голосов
/ 11 июня 2010

Звучит так, будто вы спрашиваете о решении проблемы остановки (т. Е. «Я хочу перенаправлять на себя при исключениях, но не в том случае, если последующий вызов всегда вызовет исключение»).

Запрет на проведение исследований в этой области (хотя проблему остановки невозможно решить, вы можете исключить довольно много случаев с определенным анализом) Я бы сказал, что вам лучше всего делать то, что Firefox делает в любом случае - следите за тем, как Произошло много переадресаций, которые прерывают перенаправление, если оно превышает определенное значение.

Одним из способов сделать это может быть включение параметра, который увеличивается с каждым последующим «перенаправлением исключения», и сравнение с этим параметром при принятии решения о том, следует ли перенаправлять или нет.

1 голос
/ 21 января 2010

Ну, общий способ остановить рекурсию - это остановка. В вашем примере все, что делает перенаправление, может посмотреть на его реферер и убедиться, что оно не пытается «перенаправить» на реферер.

0 голосов
/ 26 июля 2012

Краткий ответ: не перенаправлять на домашний контроллер.

Вместо этого перенаправьте на страницу со статическим сообщением об ошибке.

Это будет чище и стабильнее.

...