2012-09-19 3 views
0

처음에는 server.transfer를 사용합니다. 완벽하게 작동합니다. 하지만 난 내 사이트에 다른 언어를 추가하고 나는 그것을 수행하려고하지만Server.Transfer 일부 URL을 전송하지 않음

내 코드가 "TR"전송이 훌륭한 일을

if (Request.RawUrl.Contains("/tr/")) 
    { 
     Server.Transfer("tr/" + dt.Rows[0]["SourceURL"].ToString()); 

    } 
    else if (Request.RawUrl.Contains("/en/")) 
    { 
     Server.Transfer("en/" + dt.Rows[0]["SourceURL"].ToString()); 

    } 

아래에있는 새로운 언어와 함께 실패하지만 실내가가 유지 실패 내 pagenotfound 및 대상 URL로 전송하지 않습니다. 나는 또한 http://mysite.com/en/test.aspx?k=13 같은 전체 URL을 작성하고 또한 작동하지만 그것은 작동하지만 server.transfer 때 실패 확인

아무도 말할 수 있습니까?

감사

+0

동일한 URL로 Request.Redirect ("")를 사용하면 오류가 발생합니까? –

+0

아니요. response.redirect()로는 실패하지 않지만 server.transfer와 request.redirect는 www.mysite.com/en/home과 같은 페이지를 호출 할 때 forexample과 동일하지 않습니다. response.redirect () 내가 맞습니까? – ercan

+0

아니요, 그들은 동일하지 않으므로 차이점을 읽을 가치가 있습니다. 내가 올바르게 기억한다면, Server.Transfer()는 요청이 요청자에게 다시 보내지지 않아 서버 내에서 처리되기 때문에보다 효율적입니다. Resonse.Redirect()는 사용자가 URL을 클릭하거나 수동으로 입력 한 것처럼 작동합니다. 그래서 당신은 mysite.com 웹 사이트 –

답변

0

내가 Response.Redirect를 그것은 Server.Transfer를만큼 효율적되지 않습니다 웹 사이트 "www.mysite.com/en/home"

에 대한 상황에 대한 작동합니다 생각, 하지만 잘 작동해야합니다. "tr /"과 함께 작동하는 이유는 모르지만 "en /"이 아닌 것은 상대 경로와 관련된 문제 일 수 있습니다. 당신은 당신의 URL 앞에 tilda "~"를 포함 시키려고 할 수 있습니다.

 Server.Transfer("~/en/" + dt.Rows[0]["SourceURL"].ToString());