也玩ASP.NET MVC 与 WebFroms 整合
2011-04-20 17:26
302 查看
目标:
以前有老的WebForm应用程序,希望一步步转移到MVC,或者使二者能够部署在一起,把MVC项目整合到之前的WebForm项目中。步骤:
把MVC项目转移到WebForm WebApplication项目中1.在之前的WebApplication中引用以下程序集
System.Web.ExtensionsSystem.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 parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } void Application_Start(object sender, EventArgs e) { // Code that runs on application startup RegisterRoutes(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" %>
相关文章推荐
- ValidationSugar表单验证框架-支持ASP.NET MVC ASP.NET WebFroM
- ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)
- ASP.NET MVC - The view must derive from WebViewPage, or WebViewPage<TModel>
- ASP.NET MVC与Web From的使用时机?
- ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)
- 支持ASP.NET MVC、WebFroM的表单验证框架ValidationSuar使用介绍
- Implementing & Consuming ASP.NET WEB API from JQuery (MVC 4)
- MVC-READ5(asp.net web from PK asp.net MVC)
- 支持ASP.NET MVC、WebFroM的表单验证框架ValidationSuar使用介绍
- ASP.NET MVC 框架是 .NET 平台 Web 开发的主流,但是并不适合初学者
- 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)
- 主攻ASP.NET.4.5.1 MVC5.0之重生:Web项目语音朗读网页文本,简单语音提示浏览状态
- 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下:
- asp.net MVC之整合AJAX
- ASP.NET MVC同时支持web与webapi模式
- Spring.net整合Asp.net mvc
- 用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站
- ASP.NET MVC 1.0 - 2. 流程分析 (System.Web.Routing)
- 【Asp.Net WebFrom】分页
- 解决Asp.net MVC3下Web.config开启Custom Errors后Application_Error不触发问题