2014-02-12 36 views
0

我已經做到了這一點:比較URL段串

後面的代碼:

var uri = new Uri(Request.Url.ToString()); 
if ("newsFeed" == Request.Url.Segments[2]) 
{ 
    L1.Attributes.Add("class", "active"); 
} 

一個頁面的網址是:

http://localhost:52040/ClientSide/newsFeed/allEr.aspx 

所以它的假設工作,並進入if,但它不

有什麼問題?

+0

爲什麼不能你使用調試器? – Tarec

+0

如果你在'if'行放置了一個斷點,'Request.Url.Segments [2]'等於什麼? – Jonathan

+0

我已添加.contains(「newsFeed」)並且它的工作原理 – Omer

回答

0

試試這個:

if(Request.Url.Segments[2].Contains("newsFeed")) 
+0

同樣的問題適用於以前的答案。該部分是'newsFeed /'而不是'newsFeed',所以它永遠不會找到它。儘管如此,一個選項是提供一個自定義比較器函數以在Contains中使用。 – tjmoore

1

Segment[2]newsFeed/newsFeed。所以,你可以這樣做:

if ("newsFeed" == Request.Url.Segments[2].Trim('/')) 

或者使用string.TrimEnd

更簡單的方法來調試這些問題在未來是使用調試點,觀察窗口。在那裏,你可以看到Request.Url.Segments[2]

看到價值:How to: Use Debugger Variable Windows

順便說Request.Url已經Uri類型的,你沒有創造Uri新實例ToString