【发布时间】:2012-09-19 13:31:01
【问题描述】:
我在开始时使用 server.transfer 它运行良好。但后来我在我的网站上添加了另一种语言,我尝试这样做,但使用新语言失败了
我的代码在下面
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());
}
“tr”传输工作出色,但失败它停留在我的 pagenotfound 上,而不是传输到目标 url。我还检查是否写了像http://mysite.com/en/test.aspx?k=13 这样的整个网址,它也可以工作,但是当 server.transfer 失败时
谁能说出原因?
谢谢
【问题讨论】:
-
同一个URL使用Request.Redirect("")会失败吗?
-
不,它不会因 response.redirect() 而失败,但 server.transfer 和 request.redirect 与我所知道的不同,例如当我调用像 www.mysite.com/en/home 这样的页面时我不能使用 response.redirect() 对吗?
-
不,它们不一样,因此值得一读它们的区别。如果我没记错的话, Server.Transfer() 效率更高,因为请求不会一直发送回请求者,而是在服务器内处理。 Resonse.Redirect() 就像用户单击/手动输入 URL 一样工作。所以你应该可以在你的 mysite.com 网站上调用它
-
对不起,我无法得到您的评论。对不起我的英语:(
标签: c# asp.net server.transfer