C# 在Asp.net MVC中跨多个渲染方法共享控制器实例
在asp.net mvc中,我从控制器操作返回C# 在Asp.net MVC中跨多个渲染方法共享控制器实例,c#,asp.net-mvc,C#,Asp.net Mvc,在asp.net mvc中,我从控制器操作返回视图(Main.cshtml)。我的控制器名为SampleController.cs。在Main.cshtml视图中,我通过调用Html.RenderAction(“BAction”,“Sample”)和Html.RenderAction(“CAction”,“Sample”)来呈现其他动作BAction和CAction 我注意到每次在主视图中调用RenderAction,都会创建SampleController类的新实例。我通过将信息记录到类构造函
视图(Main.cshtml)
。我的控制器名为SampleController.cs
。在Main.cshtml
视图中,我通过调用Html.RenderAction(“BAction”,“Sample”)
和Html.RenderAction(“CAction”,“Sample”)
来呈现其他动作BAction和CAction我注意到每次在主视图中调用
RenderAction
,都会创建SampleController
类的新实例。我通过将信息记录到类构造函数中的文本文件来确认这一点
我知道每个http请求都会创建控制器的一个实例,对此没有什么可以做的。有没有办法在同一http请求中跨
RenderAction
方法共享控制器实例 这就是框架的工作原理。每个请求都会创建一个新的控制器实例。您试图通过共享实例实现什么?是的,我知道每个请求都会创建一个新的控制器实例。我的问题是:如何在同一请求中共享控制器实例?我有一些计算实例字段,我想重复使用。我知道我总是可以使用.NET缓存和请求缓存。但是我想知道是否有一种方法可以在同一请求中跨RenderAction调用共享控制器实例。我将问题编辑得不那么模棱两可RenderAction
将创建一个新的控制器实例。如果您的目标是传递数据,那么使用一个模型类并将其传递到部分
或渲染部分
。因此,您的意思是无法实现我的要求。谢谢你的回复,杰森!