2014-11-10 6 views
1

최근에 저는 ASP.NET 2.0 프로젝트를 MVC 5로 변환하려고 시도하고 있습니다. 여기에서 응용 프로그램에는 Response.Redirect ("URL")이 사용되는 200 개가 넘는 webform이 있습니다. , MVC 5 프로젝트로 변환 한 후 작동하지 않는, 내가 찾은 해결책은Response.Redirect의 endResponse 기본값을 false로 설정하십시오.

Response.Redirect("URL",false); 

를 다음과 같이 오버라이드 (override) 매개 변수를 false로 endResponse를 설정하는 것입니다 지금은 쉽지 파일을 200 개 이상의 열이 라인을 업데이트 가능, 그래서 우리가이 플래그를 기본값으로 false로 설정할 수있는 방법이 있거나이 Response.Redirect 메서드를 재정의 할 수 있습니까?

또는 Response.Redirect ("URL")을 정규 표현식으로 찾고 단 한 번에 모두 바꿀 수있는 방법이 있습니까?

도움을 주시면 감사하겠습니다.

답변

1

정규식 찾기 및 바꾸기는 효과가 있지만 정규식은 좋지 않지만 찾기 쉽고 바꿉니다.

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

그런 다음

에 Response.Redirect를을 찾은 내용을하고

의 대체 새로운 함수를 만듭니다 NewRedirect

이렇게하면 모든 리디렉션이 한 곳에서 관리되고 나중에 관리 할 수 ​​있습니다. 나는 리디렉션을 관리하기 위해 앱에서 위와 약간 더 복잡하지만 비슷한 작업을합니다. 모든 리디렉션을 제어 할 수 있도록 여러 상황에서 매우 편리합니다.

편집의 질문에 대한 대답에서

는 재정의 메서드는 대답은 아니오,이 있습니다.

당신은 따라서이 메소드 호출시 매개 변수에 설정해야합니다, 닷넷 소스 http://referencesource.microsoft.com/#System.Web/HttpResponse.cs,485d70e24a9bc19c

당신이 endResponse를 얻을 그 값 이외의 다른 장소가없는 볼을 보면.

유일한 다른 옵션은 HttpResponse에서 메서드를 재정의하는 것이지만 나는 그렇게하지 않는 것이 좋습니다.

+0

이것은 정말 좋지만 더 나은 접근 방법을 찾고 있습니다.이 .redirect 메서드를 재정의 할 수 있습니까? –

+1

값을 무시할 수없는 이유에 대한 자세한 정보를 추가했습니다. Regex 찾기 및 바꾸기 또는 위에서 언급 한 내 접근 방식 중 하나입니다. –

+0

매우 유익한, 감사합니다 아담! –