【问题标题】:C# - I can't access my Master Page's img tag's src attribute from my code behindC# - 我无法从后面的代码中访问我的母版页的 img 标签的 src 属性
【发布时间】:2015-08-25 20:42:38
【问题描述】:
<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 标记的情况下运行此代码时,我收到一个解析器错误,提示“服务器标记不能包含 结构”。我在 Page_Load 后面的代码中尝试的 C# 代码是:

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

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

【问题讨论】:

    标签: c# asp.net controls src runat


    【解决方案1】:

    试试

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

    注意'不是'

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

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

    【讨论】:

    • 它说“提交”在当前上下文中不存在。如果我将 runat="server" 添加到 Main.master 中的 img 标记,则会收到我之前提到的 Parser Error。
    • 我理解正确吗? Img 标签在 MasterPage 中。您需要从子页面访问它吗?
    • Img 标签在 MasterPage 中。如果这是唯一的方法,我想访问 MasterPage.cs 中的 Img 标记或子页面。
    • 感谢您的修改,但我仍然收到解析器错误。它说服务器标签格式不正确。 :(
    • 是的。它没有关闭。在 之前添加
    【解决方案2】:

    这里注意右转:

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

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 1970-01-01
      • 2019-11-23
      • 2012-08-12
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多