2012-04-26 101 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