在ASP.NET中使用iFrame

时间:2011-02-16 10:10:51

标签: c# asp.net iframe contentplaceholder

我有一个带有母版页的asp.net网站,我可以使用iframe,因此我的.aspx页面会加载到iframes内。 (意思是它不会加载主页面)

有点像我的iframe将是contentplaceholder或者contentplaceholder会在其中吗?

任何想法?

4 个答案:

答案 0 :(得分:28)

试试这个

<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");
}

答案 1 :(得分:7)

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

您可以在任何HTML页面中放置一个iframe,这样您就可以将一个iframe放在一个包含Masterpage的webform中的contentplaceholder中,它将显示您加载到其中的任何URL(通过Javascript或C#,如果你转动你的iframe在请求时webform生成的最终HTML页面上的服务器端控件(runat='server')。

您可以将网址加载到 .aspx页面的iframe中。

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

顺便说一句,iframe的使用仍然存在争议 - 你真的需要使用iframe吗?你能承受与他们有关的负面权衡取舍吗?缺乏导航历史......?

答案 2 :(得分:7)

怎么样:

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

Is supported since .Net Framework 4.5

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

答案 3 :(得分:6)

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

<强> 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 />"));