マスターページを含むasp.net Webサイトがあります。iframe
を使用して、.aspx
ページをiframes
内にロードできます。 (それはマスターページをロードしないことを意味します)
ちょっと私のiframe
がcontentplaceholder
になるのか、それともcontentplaceholder
がその中にあるのでしょうか?
何か案は?
これを試して
<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");
}
どうですか:
<asp:HtmlIframe ID="yourIframe" runat="server" />
。Net Framework 4.5以降でサポートされています
このコントロールの使用に問題がある場合は、 こちら をご覧ください。
Iframeは、HTMLページに配置してその中に別のURLを表示できる埋め込みブラウザウィンドウと考えることができます。このURLは、Webサイト/アプリとはまったく異なる場合があります。
任意のHTMLページにiframeを配置できるため、マスターページを持つWebフォームのcontentplaceholder内にiframeを配置できます。iframeをサーバーに変換する場合は、ロードするURLとともに表示されます(JavascriptまたはC#を使用) -side control(runat='server'
)要求されたときにWebフォームが生成する最終HTMLページ。
そして、iframeにis a .aspx
ページ。
ただし、iframeはASP.netメカニズムとは関係ありません。これらは、サーバー側で実行できるHTML要素ですが、本質的に「ダム」であり、ASP.Netメカニズムに管理されていない/接続されていません。Contentplaceholderとiframeを混同しないでください。
ちなみに、iframeの使用はまだ議論の余地があります。本当に使用する必要がありますか?それらに関連する負のトレードオフを支払う余裕はありますか?ナビゲーション履歴の欠如...?
別のオプションは、プレースホルダーを使用することです。
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 />"));