我刚刚找到了实现这个的方法。
只需使用VaryByHeader
属性,将其设置为"host"
。有许多可能性可以这样做。
方法1
使用OutputCacheAttribute
并传递所有必要的配置元素,包括VaryByHeader
:
public class HomeController : Controller
{
[OutputCache(Duration = 3600, VaryByParam = "none", VaryByHeader = "host")]
public ActionResult Index() { }
}
方法2。
或者您可以将其设置为Web.config文件中的配置文件:
<?xml version="1.0"?>
<configuration>
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear/>
<add name="Multitenant"
enabled="true"
duration="3600"
varyByHeader="host"
varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
</configuration>
然后使用它:
public class HomeController : Controller
{
[OutputCache(CacheProfile = "Multitenant")]
public ActionResult Index() { }
}
第三种方法。
或者你可以继承 OutputCacheAttribute
并使用它:
public sealed class MultitenantOutputCacheAttribute : OutputCacheAttribute
{
public MultitenantOutputCacheAttribute()
{
VaryByHeader = "host";
VaryByParam = "none";
Duration = 3600;
}
}
然后使用它:
public class HomeController : Controller
{
[MultitenantOutputCache]
public ActionResult Index() { }
}