【问题标题】:Custom Controller, not working with areas自定义控制器,不适用于区域
【发布时间】:2018-07-28 21:45:29
【问题描述】:

我的项目中有一个自定义控制器,因为我使用 Structure Map 作为 IOC 容器。当我添加 Datatables.mvc(jquery 网格库)并从区域调用视图时,自定义控制器在运行时不起作用并给我一个错误。当我从引用中删除 Datatables.mvc 时,项目编译成功并呈现视图表单控制器。

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        setDbInitializer();
        //Set current Controller factory as StructureMapControllerFactory
        ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
        Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver = SmObjectFactory.Container.GetInstance<Microsoft.AspNet.SignalR.IDependencyResolver>();
    }
    private static void setDbInitializer()
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<OnlineAcademyDbContext, Configuration>());
        SmObjectFactory.Container.GetInstance<IUnitOfWork>().ForceDatabaseInitialize();
    }
    public class StructureMapControllerFactory : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
            {
                throw new HttpException(404, $"Resource not found : {requestContext.HttpContext.Request.Path}");
            }
            return SmObjectFactory.Container.GetInstance(controllerType) as Controller;
        }
    }
    protected void Application_EndRequest(object sender, EventArgs e)
    {
        HttpContextLifecycle.DisposeAndClearAll();
    }
}

当我从区域调用视图并且 Datatable.mvc 已添加到引用时,这是错误:

System.Web.HttpException:找不到资源:区域的 url... 控制器类型为空

谢谢大家。

【问题讨论】:

    标签: c# jquery asp.net asp.net-mvc controller


    【解决方案1】:

    好吧。问题已解决。解决办法是换电脑。我认为 iis 或 Os 混淆了原因

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 2021-10-02
      • 2014-10-26
      • 1970-01-01
      • 2011-12-09
      • 2013-10-01
      相关资源
      最近更新 更多