我正在使用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,但不能很容易地包含兩者的元素。我發現兩個主要的變通辦法是:
- 讓你的所有MVC元素大量Ajax化,使他們可以動態地通過AJAX頁面加載後加載。
- 爲了使應用程序的MVC部分具有與WebForms部分相同的外觀和風格,您的主頁面有兩個版本,以及其他任何與您的Web應用程序「通用」的版本。
我們使用後一種方法。
我想我也會使用兩種主文件方法。我擔心不得不在我的aspx母版頁上使用IFrame來託管我的mvc'內容頁面'。 – ProfK 2010-12-15 17:46:19
@ProfK:是的,我們使用iframe解決方案將我們的應用程序整合到用Java編寫的另一個應用程序中,並且這種方法存在更多的痛點。 – StriplingWarrior 2010-12-15 20:33:14
我正在使用類似這樣的類將MVC視圖嵌入到webforms頁面中。會嘗試這樣做,在反方向
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. 在非MVC中使用System.Web.Mvc ASP.NET Web窗體應用程序
- 2. Web應用程序中的同一窗體的多個視圖
- 3. 在asp.net mvc 3應用程序中包含Trent Richardson datetimepicker
- 4. 在Windows窗體應用程序中包含ASP Web服務項目
- 5. ASP.NET MVC與Web窗體一起在同一個Web應用程序中?
- 6. 如何從MVC 2應用程序顯示Web窗體頁面?
- 7. ASP.NET:在Web窗體中使用MVC局部視圖
- 8. 服務包含從一個MVC/IIS Web應用程序
- 9. 在Windows窗體應用程序中控制多個視圖
- 10. 在Power Builder V12 Web應用程序(Web窗體)中打印
- 11. 帶Web應用程序的Windows窗體
- 12. 在同一解決方案中使用ASP.NET Web窗體和MVC應用程序
- 13. 如何在3層web應用程序(ASP.NET MVC)中使用Autofac?
- 14. 包含我的代碼到Windows窗體應用程序
- 15. 如何在.NET MVC應用程序中包含社交媒體共享?
- 16. Web窗體/ MVC到Windows窗體程序員
- 17. Drupal 6 - 在視圖中包含模塊窗體
- 18. 包裝圖像周圍物體在web應用程序
- 19. 如何添加PDF視圖到我的Spring MVC(3)web應用程序?
- 20. 如何在Web窗體應用程序中使用System.Web.Abstractions?
- 21. MS-Access 2013 Web應用程序 - 爲什麼GoToRecord在視圖包含子視圖時中斷?
- 22. 在MVC 3中包含來自程序集的javascript
- 23. MVC 3使用局部視圖和Ajax窗體查看
- 24. 在MVC 3 +實體框架中創建WebForms應用程序
- 25. 共同打造兩個ASP.NET Web應用程序和Web窗體應用程序
- 26. iframe在MVC視圖加載asp.net web窗體
- 27. 在c#.net窗口窗體應用程序中比較圖像
- 28. 如何在.NET v3.5中創建ASP.NET Web窗體應用程序
- 29. Thymleaf Spring MVC應用程序無法在HTML中包含.css
- 30. 哪裏可以在MVC應用程序中包含SMS功能?
你將如何配置,如果它被添加到解決方案的新項目只(即/ MVC)的根源在哪裏?認爲這將是有用的信息。 Andi G :) +1 – Andrew 2010-12-15 16:56:39
確保在計劃路由時考慮虛擬目錄URL(例如,'/ mvc'),因爲它們相對於應用而不是虛擬目錄解決。 – 2010-12-15 17:00:21