21

我有一个带有母版页的 asp.net 网站,我可以使用它,iframe以便我的.aspx页面将加载到iframes. (意味着它不会加载母版页)

有点像我的iframe遗嘱contentplaceholder或者contentplaceholder遗嘱在里面?

有任何想法吗?

4

4 回答 4

31

试试这个

<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat="server"></iframe>

在母版页的代码隐藏中公开此 iframe:

public HtmlControl iframe
{
get
{
return this.myIframe;
}
}

将内容页的 MasterType 指令添加到强类型母版页。

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits=_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>

在后面的代码中

protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
于 2011-02-16T10:16:18.410 回答
11

另一种选择是使用占位符。

html:

<body>
   <div id="root">
      <asp:PlaceHolder ID="iframeDiv" runat="server"/>
   </div>
</body>

C#:

iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));
于 2012-11-08T20:53:00.973 回答
10

怎么样:

<asp:HtmlIframe ID="yourIframe" runat="server" />

自 .Net Framework 4.5 起受支持

如果您在使用此控件时遇到问题,可以查看此处

于 2014-11-20T14:00:53.653 回答
8

您可以将 iframe 视为嵌入式浏览器窗口,您可以将其放在 HTML 页面上以在其中显示另一个 URL。此 URL 可以与您的网站/应用程序完全不同。

您可以将 iframe 放在任何 HTML 页面中,因此您可以将 iframe 放在具有 Masterpage 的 web 表单中的 contentplaceholder 中,并且它将与您加载到其中的任何 URL 一起出现(通过 Javascript,或者如果您将 iframe 变成服务器,则通过 C# -side 控件 ( runat='server') 在您的 Web 表单在请求时生成的最终 HTML 页面上。

您可以将 URL 加载到作为页面的 iframe.aspx

但是 - iframe 与 ASP.net 机制无关。它们是可以在服务器端运行的 HTML 元素,但它们本质上是“愚蠢的”并且不受管理/未连接到 ASP.Net 机制 - 不要将 Contentplaceholder 与 iframe 混淆。

顺便说一句,iframe 的使用仍然存在争议——你真的需要使用 iframe 吗?您能否承受与它们相关的负面权衡,例如缺乏导航历史......?

于 2011-02-16T10:17:21.763 回答