关于c#:在ASP.NET中使用iFrame

Using iFrames In ASP.NET

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

像我的iframe那样的Kinda是contentplaceholder还是contentplaceholder会在其中?

有什么想法吗?


试试这个

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

将此iframe暴露在母版页代码中:

1
2
3
4
5
6
7
public HtmlControl iframe
{
get
{
return this.myIframe;
}
}

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

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

在后面的代码中

1
2
3
4
protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src","some.aspx");
}


怎么样:

1
 

从.Net Framework 4.5开始受支持

如果您在使用此控件时遇到问题,可以在这里看看。


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

HTML:

1
2
3
4
5
<body>
   
     
   
</body>

C#:

1
iframeDiv.Controls.Add(new LiteralControl("<iframe src="" + whatever.com +""></iframe><br />"));

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

您可以将iframe放置在任何HTML页面中,因此您可以将iframe放置在具有母版页的网络表单的contentplaceholder内,并且它将随您加载到其中的URL一起显示(通过Javascript或C#,如果您打开iframe放入您的Webform在请求时生成的最终HTML页面上的服务器端控件(runat='server')中。

您可以将URL加载到iframe中,该页面是.aspx页。

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

顺便说一句,使用iframe仍然有争议-您是否真的需要使用iframe?您能否承受与之相关的负面折衷,例如缺少导航历史记录...?