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

Dan*_* T. 5 asp.net iframe webforms code-behind

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

<iframe id="dynamicframe" runat="server"></iframe>
Run Code Online (Sandbox Code Playgroud)

我应该直接在代码隐藏中设置它,如下所示:

dynamicframe.Attributes["src"] = "http://dynamicurl.com";
Run Code Online (Sandbox Code Playgroud)

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

<iframe id="dynamicframe" src="<%= dynamicFrameUrl %>"></iframe>
Run Code Online (Sandbox Code Playgroud)

或者其他一些方法呢?

Ari*_*tos 4

这是一个普遍问题,对于任何 html 标签来说都是一样的。

第三个选项是使用文字控件并在后面的代码上完全渲染 iframe,如下所示:

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

所有方法的不同之处:

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

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

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

使用字面量来写

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

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

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

所有的方法都有其目的,我就根据最适合的来使用。