Với [OutputCacheAttribute] trong ASP.NET MVC 3, bạn có thể xuất bộ nhớ cache với một sự linh hoạt tốt. Sẽ rất hữu ích khi tận dụng thuộc tính 'VaryByHeader' để nhóm bộ nhớ đệm theo tên máy chủ lưu trữ. Ví dụ:VaryByHeader với OutputCacheAttribute trên hành động con
[OutputCache(Duration = 60, VaryByHeader = "host")]
public ActionResult Foo()
{
return this.View();
}
Tuy nhiên, đối với hành động con, bạn không thể áp dụng 'VaryByHeader'. Khung ném ngoại lệ sau đây:
OutputCacheAttribute cho những hành động con chỉ hỗ trợ Thời gian, VaryByCustom, và các giá trị VaryByParam. Vui lòng không đặt CacheProfile, Vị trí, NoStore, SqlDependency, VaryByContentEncoding hoặc giá trị VaryByHeader cho hành động con.
Câu hỏi của tôi là, tại sao?
Lý do tại sao chúng tôi không thể VaryByHeader trong một hành động con vì nó sẽ cung cấp một phương sai xung đột, vì hành động gốc có thể đã chỉ định một giá trị VaryByHeader khác?
Nếu tôi muốn lưu các hành động con theo cách khác nhau dựa trên tên máy chủ, điều này có nghĩa là gì và tôi sẽ sử dụng nó như thế nào?
Chỉ cần tò mò, làm những hành động trẻ gây HTTP khác nhận được? Có lẽ các nhà thiết kế của ý nghĩ này rằng vì không có bài viết _second_ trở lại sẽ không cần phải cache bởi các tiêu đề http khác nhau. –
Không, hành động của trẻ chỉ là trừu tượng trong cùng một yêu cầu. –