C#如何逃避eval<%?

时间:2011-01-10 20:47:54

标签: c# asp.net eval

我有这样的代码:

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

我显示一个链接,如果值> 0 ..但是当我把visitorID =&lt;%#...%&gt;时,它给了我一个糟糕的网址(history.aspx?visitorid =%3C%#%20Eval)在另一个Eval&lt;%#..%&gt;

怎么逃避这个?感谢

3 个答案:

答案 0 :(得分:5)

您可以将字符串分开,如下所示:

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

答案 1 :(得分:2)

如果你这样编码就可以调用第二个Eval:

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

答案 2 :(得分:0)

随着你的字符串变得越来越复杂,你会发现在后面的代码中使用静态方法构建它们更容易。然后在你的ASPX中,你会有一些简单的东西,比如&lt;%#GetLink(Eval(“VisitorId”))%&gt;