在ASP.NET中使用iFrame

Or *_*lel 21 c# asp.net iframe contentplaceholder

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

有点像我的iframe意志contentplaceholder或者也许contentplaceholder会在里面吗?

有任何想法吗?

san*_*ngh 30

试试这个

<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>
Run Code Online (Sandbox Code Playgroud)

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

public HtmlControl iframe
{
get
{
return this.myIframe;
}
}
Run Code Online (Sandbox Code Playgroud)

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

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

在代码背后

protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
Run Code Online (Sandbox Code Playgroud)


Phi*_*ann 9

怎么样:

<asp:HtmlIframe ID="yourIframe" runat="server" />
Run Code Online (Sandbox Code Playgroud)

自.Net Framework 4.5以来一直受支持

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


ind*_*dra 8

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

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

你可以加载一个URL到您的IFRAME这一个.aspx页面.

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

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

  • +1:只是为OP澄清一件事.如果页面引用母版页,则无论页面如何访问,都将加载母版页.保持母版页不被执行的唯一方法是1)完全删除对母版的引用,2)在设计时更改对没有所有相同代码的母版的引用,或者3)更改母版在运行时引用页面preinit方法给其他一些master. (2认同)

owe*_*rig 7

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

HTML:

<body>
   <div id="root">
      <asp:PlaceHolder ID="iframeDiv" runat="server"/>
   </div>
</body>
Run Code Online (Sandbox Code Playgroud)

C#:

iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));
Run Code Online (Sandbox Code Playgroud)