2014-11-10 2 views
1

Недавно я пытаюсь преобразовать проект ASP.NET 2.0 в MVC 5, где в приложении есть более 200 веб-форм, где используется Response.Redirect («URL») , который не работает после преобразования MVC 5 проекта, решение, которое я нашел, чтобы установить endResponse ложь для перегруженного параметра следующегоУстановить значение по умолчанию endResponse для false. Response.Redirect

Response.Redirect("URL",false); 

теперь его не так просто и возможно открыть 200+ файлов и обновить эту строку, так можно ли установить этот флаг как false как значение по умолчанию или мы можем переопределить этот метод Response.Redirect?

или есть ли способ найти Response.Redirect («URL») с некоторым регулярным выражением и заменить все за один снимок?

Любая помощь будет оценена по достоинству.

ответ

1

Найти и заменить регулярное выражение, но мое регулярное выражение не очень велико, но у меня есть более простая находка и замена.

Создать новую функцию

public void NewRedirect(String url) 
{ 
    Response.Redirect(url, false); 
} 

Затем сделать поиск и замену в

Response.Redirect

в

NewRedirect

Это сохраняет все ваши переадресации в одном месте и управляется в будущем. Я делаю что-то более сложное, но похожее на предыдущее в моих приложениях, чтобы управлять всеми переадресациями. Во многих ситуациях очень удобно обеспечить контроль всех перенаправлений.

Редактировать

В ответ на ваш вопрос о том, существует ли способ коррекции, ответа нет.

Если вы посмотрите на исходный код .NET http://referencesource.microsoft.com/#System.Web/HttpResponse.cs,485d70e24a9bc19c

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

Единственный другой вариант - переопределить метод в HttpResponse, но я серьезно не рекомендую вам это делать.

+0

Это действительно хорошо, но все еще ищет лучший подход, не можем ли мы переопределить этот метод .redirect? –

+1

Я добавил дополнительную информацию о том, почему вы не можете переопределить значение. Это либо найти и заменить Regex, либо мой подход, как указано выше. –

+0

Очень информативно, спасибо Адаму! –

Смежные вопросы