Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET中使用iFrame_C#_Asp.net_Iframe_Contentplaceholder - Fatal编程技术网

C# 在ASP.NET中使用iFrame

C# 在ASP.NET中使用iFrame,c#,asp.net,iframe,contentplaceholder,C#,Asp.net,Iframe,Contentplaceholder,我有一个带有母版页的asp.net网站,我可以使用iframe,这样我的.aspx页面将加载到iframe中。(意味着它不会加载母版页) 有点像我的iframe会是contentplaceholder或者contentplaceholder会在里面 有什么想法吗?试试这个 <iframe name="myIframe" id="myIframe" width="400px" height="400px" runat="server"></iframe> 将内容页的Mas

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

有点像我的
iframe
会是
contentplaceholder
或者
contentplaceholder
会在里面

有什么想法吗?

试试这个

<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat="server"></iframe>
将内容页的MasterType指令添加到强类型母版页

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

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

您可以在任何HTML页面中放置iframe,这样您就可以在具有母版页的Web表单中的contentplaceholder中放置一个iframe,它将显示您加载到其中的任何URL(通过Javascript或C#,如果您将iframe转换为服务器端控件(
runat='server'
)在webform请求时生成的最后一个HTML页面上

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

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


顺便说一句,iFrame的使用仍然存在争议-您真的需要使用吗?您是否能够承受与之相关的负面权衡,例如缺少导航历史…?

另一种选择是使用占位符

Html:

<body>
   <div id="root">
      <asp:PlaceHolder ID="iframeDiv" runat="server"/>
   </div>
</body>
iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));

C#:

<body>
   <div id="root">
      <asp:PlaceHolder ID="iframeDiv" runat="server"/>
   </div>
</body>
iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));
iframeDiv.Controls.Add(新的LiteralControl(“
”);
那么:

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


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

+1:仅澄清OP的一件事。如果页面引用母版页,则无论如何访问该页面,都将加载母版页。阻止母版页执行的唯一方法是1)完全删除对母版页的引用,2)更改对在设计时没有所有相同代码的母版的引用,或3)在运行时将page preinit方法中的母版引用更改为其他母版。@Rohit-为什么要执行这些无意义的编辑?请注意,这将产生HTML5验证警告,因为
src
属性是必需的。@mbomb007在.aspx页面中提供src=“#”是否足够(在代码隐藏中操作之前)?这会阻止HTML5验证警告吗?我想是的。