【问题标题】:What is the best way of setting the src of an iframe from a codebehind file in ASP.NET?从 ASP.NET 中的代码隐藏文件设置 iframe 的 src 的最佳方法是什么?
【发布时间】:2012-06-10 01:53:24
【问题描述】:

我有一个 iframe,它有一个基于 Web API 调用结果的动态 URL。在 aspx 页面中设置其 src 的最佳方法是什么?这是 iframe 的示例:

<iframe id="dynamicframe" runat="server"></iframe>

我是否应该像这样直接在代码隐藏中设置它:

dynamicframe.Attributes["src"] = "http://dynamicurl.com";

或者我应该在代码隐藏中创建一个属性并在 iframe 中引用它:

<iframe id="dynamicframe" src="<%= dynamicFrameUrl %>"></iframe>

还是其他方法?

【问题讨论】:

    标签: asp.net iframe webforms code-behind


    【解决方案1】:

    如果您在代码隐藏文件中有可用的 URL,我会说选项一是最直接的。但是,我对这个问题有点困惑,您是否在寻找最佳实践?

    【讨论】:

    • 我想说的是,第一种方法比第二种方法工作量少。我也不认为第一种方法有任何缺点,因为无论如何你都要在服务器端分配它。
    【解决方案2】:

    这是一个通用问题,对于任何 html 标记都是一样的。

    替代的第三个选项是使用文字控件并将 iframe 完全呈现在后面的代码中:

     txtLiteral.Text = "string.Format(
          "<iframe id=\"dynamicfrmae\" src=\"{0}\"></iframe>",   PageUrlForSrc  );
    

    所有方法的不同:

    直接写在页面&lt;%= %&gt;

    1. 不适用于更新面板
    2. 它在页面发送到浏览器的那一刻运行(而不是在页面步骤之前)
    3. 无法作为控件访问

    这是我最避免的方法。我只在我想留下一些计算以供以后使用并避免页面循环时使用它,或者当我在它之前有 responce.flush() 时。

    用文字来写

    1. 与更新面板兼容
    2. 无法作为控件访问

    将其作为属性写在后面的代码中

    1. 让控件通过html循环的步骤
    2. 可在页面上的其他位置作为变量访问
    3. 此控件的 id 可能会更改,但您可以避免冲突

    所有方法都有其目的,然后我根据它们最适合的方式使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2011-09-15
      相关资源
      最近更新 更多