<td>
<a runat="server" href="~/url.aspx">
<img src="<%= ResolveClientUrl("~/images/image1") %>" id="submissions"
border="0" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('submissions','','<%= ResolveClientUrl("~/images/image2") %>',1)"></a></td>
当我尝试运行这段代码与runat="server"添加到我的img标签,我得到一个解析器错误,说"服务器标签不能包含<%…%>结构。"我尝试的c#代码在我的代码后面的Page_Load是:
if (Request.Url.AbsoluteUri.Contains("submissions"))
submissions.Attributes["src"] = "~/images/image3";
目标是突出显示导航栏中与用户已经访问的页面相对应的部分。问题是它不允许我访问img标签的src属性。
Try
<img src='<%= ResolveClientUrl("~/images/image1") %>' id="submissions" ...
注意"not"
如果您需要从CodeBehind访问此标签-最简单的方法是将<img/>
替换为<asp:Image runat="server" id="submissions"/>
,并且在主代码隐藏访问中使用ID,但在子页面中-使用
Image submissions = (Image)this.Master.FindControl("submissions");
注意右转义:
onmouseover="MM_swapImage('submissions','','<%= ResolveClientUrl("~/images/image2") %>',1)"
onmouseover="MM_swapImage('submissions','','<%= ResolveClientUrl('~/images/image2') %>',1)"