目标:

以前有老的WebForm应用程序,希望一步步转移到MVC,或者使二者能够部署在一起,把MVC项目整合到之前的WebForm项目中。

步骤:

把MVC项目转移到WebForm WebApplication项目中

1.在之前的WebApplication中引用以下程序集

  • System.Web.Extensions
  • System.Web.Helpers
  • System.Web.Mvc
  • System.Web.Razor
  • System.Web.Routing
  • System.Web.WebPages
  • System.Web.WebPages.Razor

说明:System.Web.Razor与System.Web.WebPages.Razor可选,如果你的MVC项目使用了Razor引擎则必须添加

2.配置路由

把之前在Mvc项目中的路由配置拷贝到WebApplication中,然后在Application_Start事件中注册路由表

 public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults);}void Application_Start(object sender, EventArgs e) {// Code that runs on application startupRegisterRoutes(RouteTable.Routes);}

当然别忘了在Global.aspx.cs中引用下列命名空间

using System.Web.Mvc;
using System.Web.Routing;

3.复制Controls,Models,View文件夹中的代码到WebApplication项目中

实际上在开发中大家是把Controls与Models等拆分成独立的项目来开发的,这样只要在WebApplication项目中引用这些项目即可。

不过目前有一个疑问是:controlers命名空间与当前项目的关系,MVC为何会调用aa.Controlers中的方法而不是,bb.Controlers中的方法

4.复制web.config中的一下配置节到新项目中<system.web>配置节下

       <compilation debug="false" targetFramework="4.0"><assemblies><add assembly="System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/><add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>

到这里,基本操作已经完成,上边只是操作简单是Demo,在真实的项目中可能还会遇到其他的问题,注意在操作过程中是否引用了一些其他的程序集等等,一步一步的加进来就可以了。

当然也是可以整合到Website项目中的,方法类似。在修改Global.aspx时注意使用以下语句引入命名空间

<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="System.Web.Routing" %>

转载于:https://www.cnblogs.com/x2048/archive/2011/04/20/2022557.html

也玩ASP.NET MVC 与 WebFroms 整合相关推荐

  1. Spring.NET 1.3.1 新特性探索系列1——ASP.NET MVC的依赖注入

    Spring.NET 1.3.1的程序集Spring.Web.Mvc提供对ASP.NET MVC程序的整合.其中SpringControllerFactory类继承自DefaultController ...

  2. ASP.NET MVC中ApiController与Controller的区别

    本文翻译自:Difference between ApiController and Controller in ASP.NET MVC I've been playing around with A ...

  3. ASP.NET MVC 3 Framework之旅 第一章

    第一章 伟大的思想 ASP.NET MVC是来自于微软的整合了有效性的和整洁的模式-视图-控制器(MVC)架构的一种Web开发框架,它的最新的思想和技术来自于敏捷性开发,是最好的ASP.NET平台.A ...

  4. Castle Team宣布Castle将与ASP.NET MVC整合

    MS宣布推出ASP.NET MVC Framework:http://www.cnblogs.com/Dah/archive/2007/10/08/916958.html 看了看上面的特性,概念几乎是 ...

  5. ASP.NET MVC和jQuery DataTable整合

    本文包含代码示例说明如何jQuery插件开发者可以集成到ASP.NET MVC应用程序. 下载源代码- 87.4 KB Introduction The jQuery DataTables plug- ...

  6. 7 天玩转 ASP.NET MVC — 第 3 天

    目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 我们假定你在开始学习时已经阅读了前两天的学习内容.在第 2 天我们完成了关于显示 Employee ...

  7. 7 天玩转 ASP.NET MVC — 第 6 天

    目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第六天的 MVC 系列学习中.希望你在阅读此篇文章的时候,已经学习了前五天的内容,这也是第 ...

  8. ASP.NET MVC 整合 Spring.net(1)- Controller进容器

    我们都知道Asp.net MVC自有一套执行机制. 通过分析MVC的MvcHandler关键代码 ProcessRequest         protected internal virtual v ...

  9. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL(转)

    http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC ...

  10. [转载]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将 ...

最新文章

  1. 计算机视觉工程师一天都大致在做些什么?
  2. 论文《城市大脑的定义与建设规范探讨》在IEEE(ICBAIE)发表
  3. 匿名块 块内实体的修改
  4. Redis学习手册(实例代码)
  5. oracle如何复制dept,[oracle]表复制的sql语句
  6. 怎么通过邮箱发超大附件?介绍一种基于云服务的方法
  7. [RN] React Native 实现图片预览
  8. android resolvesize方法,Android 自定义View中onMeasure()中使用resolveSize()是什么意思?
  9. django web 自定义通用权限控制
  10. iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
  11. CSAPP lab3 bufbomb-缓冲区溢出攻击实验(下)bang boom kaboom
  12. 异常Exception分类
  13. 【数据结构】线性处理字符串中指定字串的个数问题
  14. python新手如何编写一个猜数字小游戏
  15. 未root的情况下获取墨墨背单词的databases文件夹
  16. 电脑版微信多开显示网络代理服务器,电脑版微信多开办法,超级简单,一看就会...
  17. 滴滴开源的损失!章文嵩将离职,曾是阿里开源“赶集人”,投身开源 20 年
  18. 应急响应入侵排查之第三篇常见的 Webshell 在线查杀工具
  19. JME3 官方教程翻译 - 自定义网格形状
  20. django考点答案

热门文章

  1. 为什么建议要延迟macOS升级,小编为你全面分析!
  2. 如何删除 macOS 压缩包中的隐藏文件?
  3. keepalived 非抢占模式
  4. Codeforces 385C 线性筛素数
  5. Ciena 在MEF16发布开放分布式NFV方案
  6. struts的执行流程
  7. 工厂模型——简单工厂和工厂方法
  8. Request 获取网址各片段
  9. windows 下 MyEclipse 运行hadoop 出错
  10. 淘宝云梯分布式计算平台架构