也玩ASP.NET MVC 与 WebFroms 整合

目标:

以前有老的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 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" %>

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值