C# - 我无法从代码隐藏中访问母版页的 img 标记的 src 属性


<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)"

最新更新