我有以下代码行:
<asp:HyperLink runat="server" ImageUrl="~/App_Themes/<%=Page.Theme%>/images/buttons/contractqv.png" NavigateUrl="javascript:showhideQuickView()" ID="ShowHideBirdsEye" ToolTip="Show Hide Workload"></asp:HyperLink>
然而,当我运行我的代码,并且我查看网址时,它就变成了这个:
http://localhost:51309/App_Themes/%3C%25=Page.Theme%25%3E/images/buttons/contractqv.png
知道为什么会这样吗?我不明白
答案 0 :(得分:0)
发生的事情是这些字符不能在URL中,因此它们被“编码”到那些带有%'s的奇怪值。 &lt; %%&gt;不被解释为命令,而是被解释为更多文本
答案 1 :(得分:0)
将您的标记更改为:
<asp:HyperLink runat="server" ImageUrl= '<%#ResolveUrl(string.Format("~/App_Themes/{0}/images/buttons/contractqv.png", Page.Theme)) %>' NavigateUrl="javascript:showhideQuickView()" ID="ShowHideBirdsEye" ToolTip="Show Hide Workload"></asp:HyperLink>
如果超链接在任何数据绑定容器内,它将正常工作。否则,您必须在Page_Load
:
ShowHideBirdsEye.DataBind();
上面的代码经过测试和运行。希望它有所帮助!