私はこれを達成する方法を理解しました。
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() { /* ... */ }
}
方法3。
または、をサブクラス化しOutputCacheAttribute
て使用することもできます。
public sealed class MultitenantOutputCacheAttribute : OutputCacheAttribute
{
public MultitenantOutputCacheAttribute()
{
VaryByHeader = "host";
VaryByParam = "none";
Duration = 3600;
}
}
次にそれを使用します:
public class HomeController : Controller
{
[MultitenantOutputCache]
public ActionResult Index() { /* ... */ }
}