从ASP.NET中的代码隐藏文件设置iframe的src的最佳方法是什么?

从ASP.NET中的代码隐藏文件设置iframe的src的最佳方法是什么?,asp.net,iframe,webforms,code-behind,Asp.net,Iframe,Webforms,Code Behind,我有一个iframe,它有一个基于web API调用结果的动态URL。在aspx页面中设置其src的最佳方式是什么?以下是iframe的一个示例: <iframe id="dynamicframe" runat="server"></iframe> <iframe id="dynamicframe" src="<%= dynamicFrameUrl %>"></iframe> 或者我应该在codebehind中创建一个属性并在ifr

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

<iframe id="dynamicframe" runat="server"></iframe>
<iframe id="dynamicframe" src="<%= dynamicFrameUrl %>"></iframe>
或者我应该在codebehind中创建一个属性并在iframe中引用它:

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


或者其他一些方法?

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

这是一个一般性的问题,可以代表任何html标记

替代的第三个选项是使用文字控件,并在代码背后完全呈现iframe,如下所示:

 txtLiteral.Text = "string.Format(
      "<iframe id=\"dynamicfrmae\" src=\"{0}\"></iframe>",   PageUrlForSrc  );
txtLiteral.Text=“string.Format(
“”,第页URLFORSRC);
所有方法的适用范围不同:

直接写入页面
  • 无法使用“更新”面板
  • 它从页面发送到浏览器的那一刻开始运行(而不是在页面上的步骤之前)
  • 无法作为控件访问
  • 这是我最避免使用的方法。我只在我想为以后留下一些计算并避免页面循环时使用它,或者在前面有
    response.flush()
    时才使用它

    使用to literal编写它
  • 与UpdatePanel兼容
  • 无法作为控件访问
  • 将其作为代码隐藏的属性写入
  • 使控件通过html循环的步骤
  • 可作为变量在页面上的其他位置访问
  • 此控件的id可能会更改,但可以避免冲突

  • 所有方法都有其目的,我会根据它们最适合的情况使用它们。

    我会简单地说,第一种方法比第二种方法的工作量要少。我也不认为第一种方法有任何缺点,因为您无论如何都会将其分配到服务器端。