我有一个带有母版页的asp.net网站,我可以使用iframe
,因此我的.aspx
页面会加载到iframes
内。 (意思是它不会加载主页面)
有点像我的iframe
将是contentplaceholder
或者contentplaceholder
会在其中吗?
任何想法?
答案 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 />"));