代码之家  ›  专栏  ›  技术社区  ›  geoff swartz

确保控制器仅在活动服务器上(而不是本地)有无参数公共构造函数错误

  •  0
  • geoff swartz  · 技术社区  · 5 年前

    An error occurred when trying to create a controller of type... Make sure that the controller has a parameterless public constructor
    

    无论我在本地运行多少代码,我都不会遇到这个问题。而且这种情况大多数时间不会发生在实时的web服务器上。所以,你知道为什么这只是偶尔发生吗?下面是一个违规控制器的例子。

    public class TimesheetExpenseDashboardController : AdminControllerBase
    {
        private readonly ITimesheetController _timesheetController;
        private readonly IExpenseController _expController;
    
        public TimesheetExpenseDashboardController(ITimesheetController timesheetController, IExpenseController expController) : base(Enums.Tabs.Time)
        {
            _timesheetController = timesheetController;
            _expController = expController;
        }
    }
    
    
    public class AdminControllerBase : Controller
    {
        public AdminControllerBase(Enums.Tabs tab)
        {
            if (!AdminSecurity.ValidatedUser())
            {
                AdminSecurity.Redirect();
                Response?.End();
            }
            ViewData[Enums.ViewDataKeys.ActiveTab.ToString()] = tab;
        }
    
        protected void ResetTabType(Enums.TecwareTab tab)
        {
            ViewData[Enums.ViewDataKeys.ActiveTab.ToString()] = tab;
        }
    }
    
    0 回复  |  直到 5 年前