Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Asp.net MVC中跨多个渲染方法共享控制器实例_C#_Asp.net Mvc - Fatal编程技术网

C# 在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类的新实例。我通过将信息记录到类构造函

在asp.net mvc中,我从控制器操作返回
视图(Main.cshtml)
。我的控制器名为
SampleController.cs
。在
Main.cshtml
视图中,我通过调用
Html.RenderAction(“BAction”,“Sample”)
Html.RenderAction(“CAction”,“Sample”)
来呈现其他动作BAction和CAction
我注意到每次在主视图中调用
RenderAction
,都会创建
SampleController
类的新实例。我通过将信息记录到类构造函数中的文本文件来确认这一点


我知道每个http请求都会创建控制器的一个实例,对此没有什么可以做的。有没有办法在同一http请求中跨
RenderAction
方法共享控制器实例

这就是框架的工作原理。每个请求都会创建一个新的控制器实例。您试图通过共享实例实现什么?是的,我知道每个请求都会创建一个新的控制器实例。我的问题是:如何在同一请求中共享控制器实例?我有一些计算实例字段,我想重复使用。我知道我总是可以使用.NET缓存和请求缓存。但是我想知道是否有一种方法可以在同一请求中跨RenderAction调用共享控制器实例。我将问题编辑得不那么模棱两可
RenderAction
将创建一个新的控制器实例。如果您的目标是传递数据,那么使用一个模型类并将其传递到
部分
渲染部分
。因此,您的意思是无法实现我的要求。谢谢你的回复,杰森!