Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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:按OutputCache属性中的HTTP状态代码进行筛选/更改_C#_Asp.net_Asp.net Mvc_Caching_Outputcache - Fatal编程技术网

C# ASP.NET MVC:按OutputCache属性中的HTTP状态代码进行筛选/更改

C# ASP.NET MVC:按OutputCache属性中的HTTP状态代码进行筛选/更改,c#,asp.net,asp.net-mvc,caching,outputcache,C#,Asp.net,Asp.net Mvc,Caching,Outputcache,在我正在编写的ASP.NET MVC站点中,我正在构建一个由HttpModule路由到的通用错误操作。在这个操作中,我将返回一个与应用于HttpModule内部响应的状态代码相对应的视图(执行此操作后,模块将请求转移到相关操作) 这很好,只是我想实现缓存。我不想在不进行过滤/更改的情况下使用OutputCache属性,因为这意味着页面将被缓存一次。我希望对每个可能的状态代码缓存一次页面 是否可以通过某种方式过滤/更改OutputCacheAttribute的属性,以便分别缓存每个Response

在我正在编写的ASP.NET MVC站点中,我正在构建一个由HttpModule路由到的通用错误操作。在这个操作中,我将返回一个与应用于HttpModule内部响应的状态代码相对应的视图(执行此操作后,模块将请求转移到相关操作)

这很好,只是我想实现缓存。我不想在不进行过滤/更改的情况下使用
OutputCache
属性,因为这意味着页面将被缓存一次。我希望对每个可能的状态代码缓存一次页面


是否可以通过某种方式过滤/更改
OutputCacheAttribute
的属性,以便分别缓存每个Response.StatusCode?

您当前如何处理发送到错误操作的路由,例如,您可以:

/Errors/404
/Errors/500
所有这些都指向完全相同的操作,缓存将为您处理,因为它们是独立的URL,并且您将OutputCache属性应用于一般错误操作一次:

[OutputCache]
public ActionResult DisplayError(int errorCode) {
   return View(errorCode.ToString());
}

这样行吗?

你找到了解决这个问题的干净方法吗?