【问题标题】:ASP.NET MVC Generic Controllers and Spring.NETASP.NET MVC 通用控制器和 Spring.NET
【发布时间】:2011-02-21 22:45:26
【问题描述】:

我正在使用 ASP.NET MVC (2) 和 Spring.NET 创建一个应用程序。

由于我的大多数控制器实现只实现了类似的 CRUD 操作,我想只创建一个通用控制器,如下所述:

In asp.net mvc is it possible to make a generic controller?

但是,上面的示例没有考虑 DI 框架。

我的想法是创建这个(警告:这是一大堆丑陋的代码,我需要帮助):

public SpringGenericControllerFactory : DefaultControllerFactory {

    public IController CreateController(RequestContext requestContext, string controllerName) {

        // Determine the controller type to return
        Type controllerType = Type.GetType("MyController").MakeGenericType(Type.GetType(controllerName));

        // Return the controller
        return Activator.CreateInstance(controllerType) as IController;

    }
}

objects.xml 中的条目如下所示:

<object id="controllerFactory" type="Application.Controllers.SpringGenericControllerFactory" />

<object id="DepartmentController" factory-method="CreateController" factory-object="controllerFactory" />

任何人都可以从中挑选并提供建议吗?

【问题讨论】:

    标签: asp.net-mvc spring.net


    【解决方案1】:

    两件事:

    • controllerName 参数实际上会以“Department”而不是“DepartmentController”的形式出现。您需要处理此问题或调整 objects.xml 中的名称

    • 如果上下文不返回控制器,请确保回退到默认实现。在这种情况下,您应该回退到基类实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多