簡體   English   中英

MVCDonutCaching - 當父級未進行環形緩存時,子操作的問題

[英]MVCDonutCaching - Issues with child action when parent is not donut cached

我正在使用Nuget的awesom MVCDonutCaching包來緩存整個頁面,同時保留某些未緩存的部分。 這個過程很簡單,一切正常:

我緩存如下:

[DonutOutputCache(CacheProfile = "FiveMins")]
public ActionResult Index()
{
  return View();
}

對於我的頁面部分,我不想緩存我正在執行以下操作:

  @Html.Action("HeaderLinks","Home", true)

這應該工作,實際上頁面的大部分是緩存但我的標題鏈接 - 上下文敏感鏈接顯示登錄按鈕,如果用戶沒有登錄,他們的用戶名,如果他們是,等等 - 沒有緩存。 到目前為止一切正常。

我遇到的問題是headerlinks屬於主/布局頁面並且全面使用 - 無論Action是否設置了DonutOutputCache屬性。 當我創建另一個動作時,讓我們稱它為“關於我們”,沒有甜甜圈緩存屬性我根本看不到我的標題鏈接

public ActionResult AboutUs()
{
  return View();
}

查看源代碼,我看到以下內容

<!--Donut#
<ActionSettings xmlns="http://schemas.datacontract.org/2004/07/DevTrends.MvcDonutCaching" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ActionName>HeaderLinks</ActionName>
<ControllerName>Home</ControllerName>
<RouteValues xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:KeyValueOfstringanyType>
<a:Key>Area</a:Key>
<a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema"/>
</a:KeyValueOfstringanyType>
</RouteValues>
</ActionSettings>
#-->

顯然,在上面的例子中,由甜甜圈緩存庫生成 - 鏈接部分被一些注釋的XML替換。

簡而言之,我的問題是:無論父操作是否使用圓環緩存,該庫是否都可以重用相同的子操作?

任何幫助,將不勝感激。

目前,您需要將Html.Action與DonutOutputCache動作過濾器一起使用,以便渲染圓環孔。 如果您在沒有DonutOutputCache的情況下使用Html.Action,您將看到上面概述的占位符注釋。

這是一個疏忽,將在下一個版本中解決。

http://mvcdonutcaching.codeplex.com/workitem/2388

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM