Verwenden von iFrames in ASP.NET
-
14-11-2019 - |
Frage
Ich habe eine asp.net-Website mit einer Masterseite, kann ich diese verwenden? iframe
so mein .aspx
Seiten werden in geladen iframes
.(Das bedeutet, dass die Masterseite nicht geladen wird)
Irgendwie wie ich iframe
wird sein contentplaceholder
oder vielleicht das contentplaceholder
wird drin sein?
Irgendwelche Ideen?
Lösung
Versuche dies
<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>
Machen Sie diesen Iframe im CodeBehind der Masterseite verfügbar:
public HtmlControl iframe
{
get
{
return this.myIframe;
}
}
Fügen Sie die MasterType-Direktive für die Inhaltsseite zur stark typisierten Masterseite hinzu.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits=_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
Im Code dahinter
protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
Andere Tipps
Wie wäre es mit:
<asp:HtmlIframe ID="yourIframe" runat="server" />
Wird seit .Net Framework 4.5 unterstützt
Wenn Sie Probleme mit der Verwendung dieses Steuerelements haben, werfen Sie einen Blick darauf Hier.
Sie können sich einen Iframe als ein eingebettetes Browserfenster vorstellen, das Sie auf einer HTML-Seite einfügen können, um darin eine andere URL anzuzeigen.Diese URL kann sich völlig von Ihrer Website/App unterscheiden.
Sie können einen Iframe in jede HTML-Seite einfügen, also einen in einen Inhaltsplatzhalter in einem Webformular einfügen, das über eine Masterseite verfügt, und er wird mit der von Ihnen geladenen URL angezeigt (über Javascript oder C#, wenn Sie Ihren Iframe in einen Server umwandeln). -seitige Steuerung (runat='server'
) auf der endgültigen HTML-Seite, die Ihr Webformular auf Anfrage erstellt.
Und Sie können eine URL in Ihren Iframe laden Ist A .aspx
Seite.
Aber – Iframes haben nichts mit dem ASP.net-Mechanismus zu tun.Es handelt sich um HTML-Elemente, die für die serverseitige Ausführung erstellt werden können, aber im Wesentlichen „dumm“ und nicht verwaltet/nicht mit den ASP.Net-Mechanismen verbunden sind – verwechseln Sie einen Contentplaceholder nicht mit einem Iframe.
Übrigens ist die Verwendung von Iframes immer noch umstritten – muss man wirklich eines verwenden?Können Sie sich die damit verbundenen negativen Kompromisse leisten, z.Mangel an Navigationsverlauf ...?
Eine weitere Möglichkeit ist die Verwendung von Platzhaltern.
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 />"));