Использование фреймов в 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.

Кстати, использование фреймов остается спорным - действительно ли вы должны использовать один? Можете ли вы позволить себе негативные компромиссы, связанные с ними, например, отсутствие истории навигации...?

Другие вопросы по тегам