ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(四)——整合asp.net mvc...

1、新增加一个类库,命名为CMS.Common



引用:
Spring.Core
System.Web.MVC
System.Web.Abstractions
System.Web.Routing;

在里面创建一个类:
SpringControllerFactory:
ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Text;
using Spring.Core.IO;
using Spring.Objects.Factory;
using Spring.Objects.Factory.Xml;
using System.Web.Mvc;
using System.Web.Routing;
using System.IO;
using Spring.Context;
using Spring.Context.Support;

namespace CMS.Common
{
    
/// <summary>
    
/// 控制器工厂
    
/// </summary>
    public class SpringControllerFactory : IControllerFactory
    {
        
//private static log4net.ILog log = log4net.LogManager.GetLogger(typeof(SpringControllerFactory));

        
/// <summary>
        
/// Default ControllerFactory
        
/// </summary>
        private static DefaultControllerFactory defalutf = null;

        
public IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
        {
            
//get spring context
            IApplicationContext ctx = ContextRegistry.GetContext();

            
if (ctx.ContainsObject(controllerName))
            {
                
object controllerf = ctx.GetObject(controllerName);
                
return (IController)controllerf;

            }
            
else
            {
                
if (defalutf == null)
                {
                    defalutf 
= new DefaultControllerFactory();
                }

                
return defalutf.CreateController(requestContext, controllerName);

            }

        }

        
public void ReleaseController(IController controller)
        {
            
//get spring context
            IApplicationContext ctx = ContextRegistry.GetContext();

            
if (!ctx.ContainsObject(controller.GetType().Name.Replace("Controller""")))
            {
                
if (defalutf == null)
                {
                    defalutf 
= new DefaultControllerFactory();
                }

                defalutf.ReleaseController(controller);
            }
        }

    }
}


1、新增加一个类库,命名为CMS.Controllers 用来存放MVC的控制器
引用:
System.Web.MVC
System.Web.Abstractions




新增加一个控制器

HomeController:
ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace CMS.Controllers
{
    
public class HomeController : System.Web.Mvc.Controller
    {
        
public ActionResult Index()
        {
            ViewData[
"Title"= "用户中心 -- Haphere.com";

            
return View();
        }
    }
}

在CMS.MVCWeb网站中加入对CMS.Common和CMS.Controllers的引用

配置Global.asax
原本代码:
protected   void  Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
}


新增代码:
ContractedBlock.gif ExpandedBlockStart.gif Code
protected void Application_Start()
{
    ControllerBuilder.Current.SetControllerFactory(
                   
typeof(CMS.Common.SpringControllerFactory));

    RegisterRoutes(RouteTable.Routes);
}


删除CMS.MvcWeb网站下的Controllers文件夹。

配置完成!
源码下载

转载于:https://www.cnblogs.com/cjnmy36723/archive/2009/08/08/1542022.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值