2008-11-27 34 views
11

Tôi đang học ASP.NET MVC và bị lỗi bởi một vấn đề.ASP.NET MVC OutputCache không hoạt động đối với URI gốc

Trong HomeController, hành động Index có thuộc tính OutputCache, nhưng có vẻ như nó không hoạt động.

[HandleError] 
public class HomeController : Controller 
{ 
    [OutputCache(Duration=5, VaryByParam="none")] 
    public ActionResult Index() 
    { 
     ViewData["Title"] = "Home Page" + DateTime.Now; 
     ViewData["Message"] = "Welcome to ASP.NET MVC! " + DateTime.Now; 

     return View(); 
    } 
} 

Sau một vài phút thử, tôi thấy rằng đó là do cách tôi truy cập hành động. Nếu tôi truy cập thông qua "http://localhost:3573/", thì outputcache không hoạt động. Tuy nhiên, nếu tôi truy cập nó với "http://localhost:3575/Home/Index", thì công cụ outputcache sẽ hoạt động.

Bất kỳ ai biết cách giải quyết khác để thực hiện thao tác điều khiển mặc định có thể thực hiện được?

Cảm ơn.

+0

Tôi thấy cùng một vấn đề ở đây. –

+0

bất kỳ người nào trong số các bạn sử dụng chrome? Tôi đã nhận thấy một số sự bối rối trong bộ nhớ đệm chrome –

+0

thấy giống nhau trong FF3 – dove

Trả lời

7

Tôi nghĩ đây là lỗi trong ASP.NET MVC. Chúng tôi đã đăng nhập vấn đề trong cơ sở dữ liệu của chúng tôi và sẽ điều tra một bản sửa lỗi cho vấn đề này.

Cảm ơn, Eilon

+1

Bạn cũng sẽ khắc phục lỗi khi đặt VaryByParam thành "Không" sẽ phát ra tiêu đề phản hồi HTTP "Vary: *", điều ngược lại với điều gì sẽ xảy ra? – bzlm

+1

@Eilon Tôi vẫn thấy vấn đề này vẫn còn là vấn đề, bạn có đề xuất gì về việc lưu vào bộ nhớ đệm gốc uri không? ngoài việc chuyển hướng đến/home;) – dove

1

sử dụng VarByParam = "" dường như làm cho nó hoạt

1

Theo địa chỉ liên lạc của tôi tại Microsoft, vấn đề này sẽ biến mất hoàn toàn nếu bạn loại bỏ các tập tin Default.aspx từ thư mục gốc của bạn trang web, hoặc, nếu bạn hoàn toàn cần phải có nó, hãy chắc chắn rằng bạn sử dụng một trong đó là cung cấp với phiên bản mới nhất của ASP.NET MVC.

Các vấn đề liên quan