我正在使用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