ASP.NET での iFrame の使用
-
14-11-2019 - |
質問
マスター ページのある 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 サイト/アプリとは完全に異なるものにすることができます。
iframe は任意の HTML ページに配置できるため、マスターページを持つ Web フォームのコンテンツプレースホルダー内に iframe を配置すると、(iframe をサーバーに変換する場合は Javascript または C# 経由で) 読み込んだ URL とともに表示されます。 -側制御 (runat='server'
) リクエスト時に Web フォームが生成する最終 HTML ページに追加されます。
そして、URL を iframe にロードできます。 は ある .aspx
ページ。
ただし、iframe は ASP.net メカニズムとは何の関係もありません。これらはサーバー側で実行できる HTML 要素ですが、本質的には「ダム」で管理されておらず、ASP.Net メカニズムに接続されていません。Contentplaceholder と iframe を混同しないでください。
ちなみに、iframe の使用には依然として議論があります。本当に iframe を使用する必要があるのでしょうか?それに伴うマイナスのトレードオフを許容できますか?ナビ履歴が無い…?
もう 1 つのオプションは、プレースホルダーを使用することです。
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 />"));