2012-04-26 100 views
0

我想用带#的链接重定向页面。由于#后面的值没有通过HTTP请求发送到服务器,因此我在Razor视图中编写了脚本,如下所示。重定向到新页面而不显示父页面

$(document).ready(function() { 
if (window.location.hash) { 
var url = window.location.href.toLowerCase().replace("ug_101", "UG"); 
window.location = url; 
} 

我将代码放在页面的顶部,但父视图中的元素仍在重定向之前呈现。如何在不加载父视图的情况下重定向?或者如何获得C#中URL后的值?

回答

0

你把你的代码放在.ready()函数中,所以在页面被部分加载之前,jQuery不会被执行。

与你的脚本看起来像这样试试:

if (window.location.hash) { 
var url = window.location.href.toLowerCase().replace("ug_101", "UG"); 
window.location = url; 

它没有一个是jQuery的,没有需要的页面的任何部分进行加载,所以.ready()方法造成的延误没有很好的理由。

+0

谢谢。我尝试了代码 但是页面不断加载在Firefox中。不重定向。在Safari页面中重定向,但在重定向之前仍会显示布局页面中的标题。 – user1357737 2012-04-26 05:00:19

+0

你可以更进一步,使其成为一个空白页面,重定向到一个页面或另一个页面。直到你到达一页内容时,你才会看到任何东西。仅供参考,这是一项在服务器上最好的工作,因为您重定向的页面加载将基于您的服务器速度,重定向目标服务器的速度,用户Internet连接速度 - 所有因用户而异的事物完全不受你的控制。如果服务器执行该操作(通过散列字符串以外的某种方式),您可以快速简单地重定向。 – 2012-04-26 05:15:26