iframe in eine MVC-Ansicht zu laden asp.net web-Formular
Ich habe einen controller namens ProductsController und ich verwenden Sie die index-Methode zum laden der index-Ansicht mit einer web form-innen namens WebForm1.aspx, Der index-view ist eingerichtet und funktioniert ordnungsgemäß. Jetzt möchte ich hinzufügen, dass ein iframe in der index-Ansicht, um die Anzeige des Inhalts von WebForm1.aspx. Beide Ansichten sind im gleichen Ordner Views/Produkte im MVC-Projekt. Ich habe die folgenden:
<iframe src="/ProductsController/Index?WebForm1.aspx" width="1000" height="400">
</iframe>
meine Views/web.config ist gesetzt als Nächstes:
und die WebForm-Vererbung als Nächstes:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
Doch die iframe-Anzeige eine Fehlermeldung: "HTTP 404: Die gesuchte Ressource oder eine Ihrer Abhängigkeiten) wurde möglicherweise entfernt, hatte Ihren Namen geändert, oder ist vorübergehend nicht verfügbar."
Versuchte ich auch meine globalen.asax-Datei die nächste Zeile:
RouteTable.Routes.RouteExistingFiles = true;
scheiterte aber auch,
Die einzigartige Möglichkeit, die ich bekommen iFrame angezeigt aber leer ist die Verwendung der vollständigen physikalischen Pfad als Nächstes:
<iframe src="C\:Folder1\Folder2\ ...\Views\Products\WebForm1.aspx" width="1000" height="400">
</iframe>
kann mir jemand erklären, warum es nicht funktioniert? Und wie es funktioniert? Danke.
InformationsquelleAutor Sami-L | 2013-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dann sollten Sie Ihre .aspx-Datei (webform) aus dem Ordner sichten, weil normalerweise jeder Aufruf über den browser blockieren, indem Sie die "BlockViewHandler" (die man sehen kann, im web.config-Datei des views-Ordners).
In einem anderen Ordner, die Sie erstellen, sollte es funktionieren ohne controller.
Zum Beispiel, wenn Sie es in "/webforms/webform1.aspx" dieser Weg ist die eins-zu-verwenden un den iframe.
UPDATE Hier ist ein Beispiel, bei dem neue Informationen in die Frage, hoffe, es kann helfen:
Controller:
Den Inhalt der Produkte Index.html Aufruf der aspx-Datei über ein iframe:
Den Inhalt der Produkte WebForm1.aspx:
Dies ist die zweite Antwort... Was ich meine ist, dass wenn Sie eine aspx-Datei, die erbt von System.Web.UI.Seite (WebForm1.aspx), die Art der Datei platziert werden soll, die außerhalb des Views-Ordner, so können Sie es nennen, die durch die "normale" url, ohne die Anforderung durch einen controller... Die andere Art von aspx -, sind diejenigen, die erbt von "System.Web.Mvc.ViewPage" diese Dateien Verhalten sich wie Razor-Dateien, sollten Sie im Ordner sichten und die Anfrage wird durch einen controller.
danke für die Erläuterungen, aktualisierte meine Frage, werfen Sie bitte einen Blick.
Hallo, auch ich update meine Antwort.
InformationsquelleAutor jherrera
Können Sie zeigen Sie auf den tatsächlichen Speicherort der Webform.aspx-Datei.
Ihren code asssumes, dass die MVC runtime wäre auf der Suche auf einen Ordner namens "ProductsController" und einen Unterordner mit dem Namen "Index"
Wenn Sie Webform1.aspx-Datei ist wirklich in dieser Verzeichnis-Struktur, ändern Sie das src-Attribut
src="/ProductsController/Index/WebForm1.aspx"
InformationsquelleAutor scartag
Ich die webform in den root-Ordner des MVC-Projekt und nennen Sie es wie diese:
Ich keinen Verweis auf die es in der Steuerung.
Einen netten bonus an dieser Technik ist, dass können Sie leicht navigieren Sie zurück zu Ihrem MVC-website, indem Sie die Navigations-links in der webform öffnen Sie in target="_parent"
InformationsquelleAutor JaneH