Использование фреймов в ASP.NET
У меня есть сайт asp.net с мастер-страницей, могу ли я использовать iframe
Так что мой .aspx
страницы будут загружены внутри iframes
, (Это означает, что не будет загружать мастер-страницу)
Вроде как мой iframe
будет contentplaceholder
или может быть contentplaceholder
будет внутри?
Есть идеи?
4 ответа
Попробуй это
<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");
}
Другой вариант - использовать заполнители.
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 />"));
Как насчет:
<asp:HtmlIframe ID="yourIframe" runat="server" />
Поддерживается начиная с.Net Framework 4.5
Если у вас есть проблемы с использованием этого элемента управления, вы можете посмотреть здесь.
Вы можете думать о iframe как о встроенном окне браузера, которое вы можете поместить на страницу HTML, чтобы показать другой URL внутри нее. Этот URL может полностью отличаться от вашего веб-сайта / приложения.
Вы можете поместить iframe на любую HTML-страницу, чтобы вы могли разместить ее внутри держателя контента в веб-форме, которая имеет мастер-страницу, и она будет отображаться с любым URL-адресом, который вы в нее загружаете (через Javascript или C#, если вы превращаете свой iframe в сервер боковой контроль (runat='server'
) на последней странице HTML, которую ваша веб-форма создает по запросу.
И вы можете загрузить URL-адрес в свой iframe, который является .aspx
стр.
Но - iframes не имеют ничего общего с механизмом ASP.net. Это HTML-элементы, которые могут быть созданы для работы на стороне сервера, но они по сути "тупые" и неуправляемые / не связаны с механизмами ASP.Net - не следует путать Contentplaceholder с iframe.
Кстати, использование фреймов остается спорным - действительно ли вы должны использовать один? Можете ли вы позволить себе негативные компромиссы, связанные с ними, например, отсутствие истории навигации...?