Подтвердить что ты не робот

Использование iFrames в ASP.NET

У меня есть сайт asp.net с главной страницей, могу ли я использовать iframe, чтобы мои страницы .aspx загружались внутри iframes. (Означает, что он не загрузит главную страницу)

Вроде бы мой iframe будет contentplaceholder или может быть contentplaceholder внутри него?

Любые идеи?

4b9b3361

Ответ 1

попробуйте это

<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>

Выставить этот iframe в главной странице codebehind:

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");
}

Ответ 2

Вы можете думать о iframe как о встроенном окне браузера, который вы можете разместить на странице HTML, чтобы отобразить в нем другой URL. Этот URL-адрес может быть полностью отличным от вашего веб-сайта/приложения.

Вы можете поместить iframe на любую HTML-страницу, чтобы вы могли поместить его внутри владельца содержимого в веб-форму с главной страницей, и она будет отображаться с любым URL-адресом, который вы загружаете в него (через Javascript или С#, если вы включите ваш iframe на серверный элемент управления (runat='server') на последней странице HTML, которую ваша веб-форма создает по запросу.

И вы можете загрузить URL-адрес в свой iframe, который является страницей .aspx.

Но - iframe не имеют никакого отношения к механизму ASP.net. Они представляют собой HTML-элементы, которые могут быть созданы для работы на стороне сервера, но они по сути "немыслимы" и неуправляемы/не связаны с механизмами ASP.Net - не путайте Contentplaceholder с iframe.

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

Ответ 3

Как насчет:

<asp:HtmlIframe ID="yourIframe" runat="server" />

Поддерживается с .Net Framework 4.5

Если у вас есть проблемы с использованием этого элемента управления, вы можете посмотреть здесь.

Ответ 4

Другим вариантом является использование заполнителей.

Html:

<body>
   <div id="root">
      <asp:PlaceHolder ID="iframeDiv" runat="server"/>
   </div>
</body>

С#

iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));