2011-01-10 17 views
1

我有這樣的代碼:C#如何轉義eval <%?

<%# (int)Eval("Favorites") > 0 ? "<a href=\"history.aspx?visitorid=<%# Eval(\"VisitorID\") %\">Favorites</a>/" : ""%> 

,我展示一個鏈接,如果值> 0。但是它給了我一個壞的URL(history.aspx visitorid =%3C%#%20Eval?)當我把visitorID = <%#...%>裏面另一個Eval <%#..%>

如何逃避這個?感謝

+2

做它的代碼隱藏。 – Phill 2011-01-10 20:50:32

回答

2

你可以有第二次評估和演示,如果你這樣的代碼叫:

<%# (int)Eval("Favorites") > 0 ? "<a href=\"history.aspx?visitorid=" + Eval("VisitorID") + "\">Favorites</a>/" : ""%> 
5

你可以單獨該字符串,像這樣:

?visitorid=<" + "%# Eval(\"Visit 
+0

didnt work..still得到同樣的錯誤的鏈接history.aspx?的收藏= 1&visitorid =%3C%#%20Eval( – 2011-01-10 20:52:59

+0

啊,你說你會得到一個錯誤,而不是一個不正確的URL。 – 2011-01-10 20:54:09

+0

啊,對不起didnt很好地解釋..它不是編譯器錯誤,只是錯誤的URL解析.. – 2011-01-10 20:55:01

0

當你的字符串變得越來越複雜,你會發現在你的代碼中使用靜態方法構建它們更容易。然後在你的ASPX你就會有一些簡單的像<%#GetLink(EVAL( 「VisitorId」))%>