我是新手在MVC与c#,我想知道为什么控制器实例构造函数将被频繁调用(这意味着不止一次)。许多MVC控制器实例化的相同的控制器
我已经创建了一个基于布局页面的典型视图。在布局网页,我打电话一剑道TreeView.I'm也使用AutoFac,我已经根据AutoFac MVC指令添加下面的指令到我的Global.asax:
builder.RegisterControllers(typeof(MvcApplication).Assembly);
如果我调试,正在使用来自上面的视图的控制器实例构造函数在Kendo TreeView被处理后立即被调用。我可以理解,如果控制器操作被要求提供Kendo TreeView数据源,但我不理解这个实例构造函数的几个调用。我认为已经有一个控制器的实例。
有没有人知道如果相同的控制器的许多实例构造函数执行是正常的,或者在我的编码通常有错误,例如,我可能不应该将Kendo树视图放置在布局中,也许在部分视图中?
此致 斯蒂芬
你还没有显示你的视图,但是每当有一个方法发出一个请求时,控制器就被初始化,所以当请求返回视图时,它将被初始化,并且如果你的'Kendo TreeView数据源'正在对同一个控制器中的方法进行ajax调用。 –
如果树视图控件具有根据“AuthorizeAttribute”确定每个节点是否可见/不可见的逻辑,那么它将为每个节点创建一个控制器实例,以检查当前用户是否有权访问它。控制器构造函数应该保持轻量级 - 它们应该只包含警戒子句和服务分配。每个用户请求都会实例化一个新的控制器实例,这样如果您每次都尝试构建某些内容,那么您的应用程序的性能就会很差。 – NightOwl888