私はProductsControllerというコントローラを持っています。インデックスメソッドを使用して、WebForm1.aspxという名前のWebフォームを持つインデックスビューをロードします。適切に動作しています。今度は、WebForm1.aspxのコンテンツを表示するために、インデックスビューにiframeを追加します。両方のビューは、MVCプロジェクトの同じフォルダビュー/製品にあります。私は次のようでした:MVCビューのiframeでasp.net Webフォームをロードするiframe
<iframe src="/ProductsController/Index?WebForm1.aspx" width="1000" height="400">
</iframe>
私の見解/ web.configファイルは次のように設定されます。
とWebフォームの継承がのように次のです:
しかし<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
iframeにエラーメッセージ "HTTP 404 - 探しているリソース(またはその依存関係の1つ)が削除されている可能性がありますその名前が変更されたか、一時的に利用できなくなっています。
私は私のGlobal.asaxファイルに次の行を追加することも試してみました:私はiFrameのはを表示しますが、空取得するユニークな方法は、完全なを使用することです
RouteTable.Routes.RouteExistingFiles = true;
をも失敗し、
次のような物理パス:
<iframe src="C\:Folder1\Folder2\ ...\Views\Products\WebForm1.aspx" width="1000" height="400">
</iframe>
誰かがそれがうまくいかない理由を説明できますか?そしてそれを動作させる方法は?ありがとうございました。
「/webforms/webform1.aspx」で開いているWEBフォームでナビゲーションリンクを作成することにより、バックあなたのMVCのウェブサイトにナビゲートすることができるということですそのwebformsはプロジェクトのルートパスに直接入りますか?そうであれば動作しません。 –
これは2番目の答えです...私は、System.Web.UI.Page(WebForm1.aspx)から継承するaspxファイルがある場合、その種類のファイルはViewsフォルダの外に配置する必要がありますあなたはコントローラを介してリクエストを渡すことなく "通常の" URLで呼び出すことができます...他の種類のaspxは "System.Web.Mvc.ViewPage"から継承したファイルで、これらのファイルはRazorファイルとして動作し、配置されますビューフォルダ内にあり、要求はコントローラを介して行われます。 – jherrera
説明をありがとう、私の質問を更新しました、見てみましょう。 –