5

我有一个 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>

还是完全有其他方法?

4

2 回答 2

4

这是一个普遍的问题,对于任何 html 标记都可以代表相同的问题。

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

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

所有方法的不同之处:

直接写在页面上<%= %>

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

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

用文字写出来

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

将其写为后面代码的属性

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

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

于 2012-06-06T03:12:28.623 回答
0

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

于 2012-06-06T03:02:05.993 回答