C# - 我无法从后面的代码访问我的母版页的img标签的src属性

时间:2015-08-25 20:42:39

标签: c# asp.net controls src runat

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

当我尝试使用添加到我的img标记的runat =“server”运行此代码时,我得到一个分析器错误,上面写着“服务器标签不能包含&lt;%...%&gt;构造”。我在我的代码后面的Page_Load中尝试的C#代码是:

if (Request.Url.AbsoluteUri.Contains("submissions"))
    submissions.Attributes["src"] = "~/images/image3";

目标是突出显示与用户已访问的页面对应的导航栏部分。问题是它不允许我访问img标签的src属性。

2 个答案:

答案 0 :(得分:1)

尝试

<img src='<%= ResolveClientUrl("~/images/image1") %>' id="submissions" ...

注意&#39;不是&#34;

如果您需要从CodeBehind访问此标记 - 最简单的方法是将<img/>替换为<asp:Image runat="server" id="submissions"/>,并在ID中替换Master代码隐藏,但在子页面中 - 使用

Image submissions = (Image)this.Master.FindControl("submissions");

答案 1 :(得分:1)

注意在这里逃跑:

onmouseover="MM_swapImage('submissions','','<%= ResolveClientUrl("~/images/image2") %>',1)"

onmouseover="MM_swapImage('submissions','','<%= ResolveClientUrl(\'~/images/image2\') %>',1)"