2013-07-26 66 views
1

我在帶有'a'標籤的MVC應用程序中面臨重定向問題。這是我用我的網頁通過MVC Razor視圖中的'a'標籤進行路由

<li><a href="/infra/#tabs-0" class="cbp-tm-icon-1 menu-anchor-Style">Library</a></li> 
<li><a href="/infra/#tabs-1" class="cbp-tm-icon-2 menu-anchor-Style">Computer Lab</a></li> 
<li><a href="/infra/#tabs-2" class="cbp-tm-icon-3 menu-anchor-Style">Language Lab</a></li> 
<li><a href="/infra/#tabs-3" class="cbp-tm-icon-4 menu-anchor-Style">Science Lab</a></li> 
<li><a href="/infra/#tabs-4" class="cbp-tm-icon-5 menu-anchor-Style ">Sports, Social & Cultural</a></li> 

這裏「/紅外」的代碼是我的自定義路線和「標籤-0,製表1,......」所有用來製造的一些用戶界面的改變同一頁。在這裏,我的問題是第一次當我選擇像「計算機實驗室」這樣的項目時,它會重定向到同一頁面,如果我從同一頁面本身選擇另一個菜單項目,那麼它將不會重定向。仍處於同一頁面,但我可以看到更改網址,但無法重定向

+1

不使用''#標籤,它具有特殊的意義。它是[片段標識符](http://en.wikipedia.org/wiki/Fragment_identifier) – Satpal

+1

那麼你想重定向還是不?你說'tabs-0'用於UI變化,同時抱怨它沒有做重定向。 – Stijn

+0

Stijn:我實際上想重定向到自定義的'infra'路線..#tabs-0用於滾動我的頁面中的特定位置 – Hope

回答

0

這是瀏覽器行爲。如果您有#登錄網址和url是當前頁面,那麼它不會重定向。如果你想呼叫控制器,然後刪除#標誌。

0

在MVC中,您需要按照以下方式使用href鏈接。

href=<%:Url.Action("infra","tabs-0") %> 

試試這個。

0

「#」字符是一個特殊字符,可重定向到頁面中的錨點。不要在你的情況下使用它,因爲你想重定向到另一個頁面,而不是滾動到頁面中的特定位置。

在你的情況下,帶有hashtag的URL是正確的,因爲它是由瀏覽器在客戶端處理的。

+0

對不起:我其實想要重定向到自定義'infra'路線..還有#tabs -0用於在我的頁面中滾動特定位置 – Hope

0

試試這個

<li id="liTask" style="display: block;"><a href="" id="TaskUrl" ></a></li> 

$('#TaskUrl').attr('href', '/infra/tabs-0');