這不是工作因爲某些原因:緩存控制器,它返回一個字符串
[OutputCache(Duration = 600, VaryByParam = "id")]
public string GetSomeValue(int id)
{
return _service.GetSomeValue(id).ToString();
}
我在返回一個視圖控制器測試這和它的工作。
任何想法爲什麼?或任何可能的解決方法?
這不是工作因爲某些原因:緩存控制器,它返回一個字符串
[OutputCache(Duration = 600, VaryByParam = "id")]
public string GetSomeValue(int id)
{
return _service.GetSomeValue(id).ToString();
}
我在返回一個視圖控制器測試這和它的工作。
任何想法爲什麼?或任何可能的解決方法?
的屬性必須被放置在行動本身沒有這種方法
[OutputCache(Duration = 600, VaryByParam = "id")]
Public ActionResult Get(int id)
基於您的評論
這聽起來像你正在尋找的服務器緩存。我建議像memcached或Redis之類的東西,但同樣你可以使用內置在IIS中的緩存。請注意,如果您在網上服務器場中,則必須瞭解緩存何時應該爆發以及如何處理分發。在它最簡單的形式,你可以試試這個
public string GetSomeValue(int id)
{
var cachedItem = HttpRuntime.Cache.Get(id.ToString());
if(cachedItem==null){
value = _service.GetSomeValue(id).ToString();
cachedItem = HttpRuntime.Cache.Add(id.ToString(), value);
}
return cachedItem;
}
添加的全部選項使您能夠設置一個滑動或絕對過期
public object Add(
string key,
object value,
System.Web.Caching.CacheDependency dependencies,
System.DateTime absoluteExpiration,
System.TimeSpan slidingExpiration,
System.Web.Caching.CacheItemPriority priority,
System.Web.Caching.CacheItemRemovedCallback onRemoveCallback)
傳入null的依賴關係的例子,但設定到期,你的機會希望。
這不是我所問的。我想緩存一個返回字符串 – user441365
的函數,但不能輸出緩存函數。輸出緩存是從您的web服務器完成的。聽起來像你正在尋找服務器緩存,我會更新這個答案 – dove
很酷謝謝 - 有沒有辦法設置緩存的持續時間?另外,我猜這是緩存在服務器端? – user441365
什麼不正確? – dove
它沒有緩存結果 – user441365
我從另一個控制器調用該函數 – user441365