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

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

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

Есть идеи?


person Or Betzalel    schedule 16.02.2011    source источник
comment
@Rohit - зачем ты выполняешь эти бессмысленные правки?   -  person indra    schedule 25.07.2013


Ответы (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");
}
person santosh singh    schedule 16.02.2011
comment
Обратите внимание, что это приведет к предупреждению о проверке HTML5, поскольку атрибут src является обязательным. - person mbomb007; 24.08.2016
comment
@mbomb007 mbomb007 достаточно ли указать src=# на странице .aspx (до того, как манипулировать им в коде)? Помешает ли это предупреждению о проверке HTML5? - person qxotk; 30.07.2019
comment
Я бы так подумал. - person mbomb007; 31.07.2019

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

HTML:

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

С#:

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

Как насчет:

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

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

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

person Philipp Hofmann    schedule 20.11.2014

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

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

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

Но - iframes не имеют ничего общего с механизмом ASP.net. Это HTML-элементы, которые можно настроить для работы на стороне сервера, но они по сути «тупые» и неуправляемые/неподключенные к механизмам ASP.Net — не путайте Contentplaceholder с iframe.

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

person indra    schedule 16.02.2011
comment
+1: Просто чтобы прояснить одну вещь для ОП. Если страница ссылается на главную страницу, эта главная страница будет загружаться независимо от того, как осуществляется доступ к странице. Единственные способы предотвратить выполнение мастер-страницы: 1) полностью удалить ссылку на мастер-страницу, 2) изменить ссылку на мастер-страницу, которая не имеет всего того же кода во время разработки, или 3) изменить мастер-страницу. ссылка во время выполнения в методе предварительной инициализации страницы на какой-либо другой мастер. - person NotMe; 16.02.2011