MVC3とRazorを使用してかなり大きなWebアプリケーションの新しい領域を開発しています。残りはASP.NET 4 Webフォームベースです。このアプリケーションにMVCコンポーネントを含めることはできますか?これを達成するためには何が必要ですか?右の道にあなたを取得する必要がありますWebフォームアプリケーションにMVC 3のビューを含める
答えて
http://www.packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvc
。個人的に私の場合は、あなたのソリューションにMVCという新しいプロジェクトを追加すると、IIS/MVCAppで仮想ディレクトリを設定することができます。
WebFormsとMVCは、同じアプリケーションではなく、混合されていません。言い換えれば、各ページはWebFormsまたはMVCのいずれかですが、両方の要素を非常に簡単に含めることはできません。私が見つけた2つの主な回避策は次のとおりです。
- すべてのMVC要素をAJAX化して、ページがロードされた後でAJAXを介して動的にロードできるようにします。
- アプリケーションのMVC部分をWebFormsの部分と同じ外観にするために、マスタページの2つのバージョンとWebアプリケーションに共通のものがあります。
後者のアプローチを使用します。
私は2つのマスターファイルアプローチを使用していると思います。私は私のmvc 'コンテンツページ'をホストするために私のaspxマスターページでIFrameを使用することを怖がっていた。 – ProfK
@ProfK:私たちは、アプリケーションをJavaで書かれた別のアプリケーションに統合するためにiframeソリューションを使用しています。そのアプローチにはさらに多くの苦境があります。 – StriplingWarrior
MVCビューをWebフォームページに埋め込むために、このようなクラスを使用しています。逆方向にしようとします
public class HelperFactory
{
private class FakeController : Controller
{
}
private class FakeView : IView
{
public void Render(ViewContext viewContext, TextWriter writer)
{
throw new NotImplementedException();
}
}
public static HtmlHelper<TModel> GetHelper<TModel>()
{
//HttpContextBase context = new HttpContext(HttpContext.Current);
FakeController controllerBase = new FakeController();
RouteData rd = new RouteData();
rd.Values.Add("controller", "Fake");
RequestContext requestContext = new RequestContext(new HttpContextWrapper(HttpContext.Current), rd);
ControllerContext fakeContext = new ControllerContext(requestContext, controllerBase);
ViewDataDictionary vdd = new ViewDataDictionary();
ViewContext viewCtx = new ViewContext(fakeContext, new FakeView(), vdd, new TempDataDictionary(), requestContext.HttpContext.Response.Output);
return new HtmlHelper<TModel>(viewCtx, new ViewPage());
}
}
- 1. WindowsフォームアプリケーションにASP Webサービスプロジェクトを含める
- 2. Windowsフォームアプリケーションにマイコードを含める
- 3. 既存のASP.NET WebフォームアプリケーションにASP.NET MVCプロジェクトを追加する
- 4. ASP.NET MVCビューのAdd'l .jsを含めるには? (.aspx)
- 5. ASP.NET MVC 3 - ビュー内のモデルを処理するためのベストプラクティス
- 6. MVC3ビューでMVC 3
- 7. ASP.NET MVC 3デプロイメントパッケージにカスタムファイルを含める方法
- 8. 「Zendesk」モバイルチャットサポートをxamarinフォームアプリケーションに含めるには
- 9. シングルサインオンWebサイト - MVC 3
- 10. MVC以外のASP.NET WebフォームアプリケーションでSystem.Web.Mvcを使用
- 11. 3つのWebビューを1つのビューに結合する
- 12. WindowsフォームアプリケーションのWebインターフェイス
- 13. WebへのWindowフォームアプリケーション
- 14. ASP.NET MVC 3ビューとモデル
- 15. Mono - MVCアプリケーションとWebフォームのASP.NET MVC 3
- 16. ASP.NET Webフォームアプリケーション内のサブフォルダにASP.NET MVCファイルをホストするための適切なアプローチが必要です
- 17. MVC 3で部分ビューをリフレッシュする
- 18. Webプロジェクトコードを実行するためのWindowsフォームアプリケーションの作成
- 19. スプリングMVCにブートストラップコードを含めるには?
- 20. MVC - 複数のビューを含むレイアウト
- 21. ASP.NET Webフォームアプリケーションをデスクトップアプリケーションに変換する
- 22. エラーWebフォームアプリケーションがiis
- 23. Railsプラグインにビューを含める
- 24. Odoo 8にビューを含める方法
- 25. 部分ビューASP.NET MVC 3でキャッシュする
- 26. ヘルパーメソッドをモデル(MVC)に含める場合
- 27. DotNetNuke 8 MVCモジュールにスタイルシートを含める
- 28. は、私がmvc.netにasp.netのWebフォームアプリケーションを移植していビューが
- 29. アンドロイドのビュー内にビューを含める方法
- 30. 繰り返しビュー機能を複数のビューに含める?
ソリューションに追加された新しいプロジェクト(つまり/ mvc)のルートはどのように設定しますか?これが役に立つ情報だと思ってください。 Andi G :) +1 – Andrew
ルートを計画するときは、仮想ディレクトリではなくアプリケーションに対して相対的に解決されるため、仮想ディレクトリのURL(例: '/ mvc')を考慮してください。 –