2012-01-27 39 views
10

Có cách nào để vô hiệu hóa bộ nhớ cache khi sử dụng Ajax.ActionLink. Im có vấn đề trong IE theo đó Nếu tôi loại bỏ một mục, trong đó sử dụng một liên kết hành động ajax, sau đó tải lại xem một phần mà mục được chứa, và mục lại xuất hiện ở đó (thậm chí tho nó đã được gỡ bỏ) Trên trình duyệt khác của nó hoạt động tốt và như dự địnhASP.NET MVC - Ngăn bộ nhớ cache trên Ajax.ActionLinks

@Ajax.ActionLink("x", "RemoveItem", new { id = item.QuoteLineID, enquiryId = item.EnquiryID }, new AjaxOptions() 
    { 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "Summary" 
    }, new { @class = "delete-link" }) 
+0

http://stackoverflow.com/a/16299281/2057154 – yusuf

+0

Chào, Yeah, tôi nhận xét rằng làm cho nó POST giải quyết vấn đề của tôi: http: //stackoverflow.com/questions/9031487/asp-net-mvc-prevent-cache-on-ajax-actionlinks?noredirect=1#comment11327530_9031542 – CallumVass

Trả lời

12
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 
public ActionResult RemoveItem(int id, int enquiryId) 
{ 
    ... 
} 

hoặc nối thêm một tham số ngẫu nhiên để yêu cầu sử dụng đối số routeValues.

+0

Tác phẩm không hoạt động này, tôi đã thử nó, dường như chỉ liên quan đến IE – CallumVass

+0

@BiffBaffBoff, sau đó thử thêm một số ngẫu nhiên làm thông số chuỗi truy vấn bổ sung khi tạo liên kết. –

+1

Tôi đã giải quyết nó, tôi đã sử dụng HttpMethod = "POST" trong AjaxOptions. Dường như đã thực hiện các thủ thuật – CallumVass

7

Tôi biết bạn đã nói rằng bạn đã giải quyết nó bằng cách sử dụng HttpPost, nhưng trong trường hợp đó không phải là giải pháp ưu tiên, điều này phù hợp với tôi;

public ActionResult MyAction(string param1) 
{ 
    Response.CacheControl = "no-cache"; 
    ... 
} 
+0

Điều này cũng phù hợp với tôi. Cảm ơn bạn. – liquid

+0

Tác phẩm này dành cho tôi cũng có trong IE11 – user1929393

3

tôi giải quyết vấn đề của tôi bằng cách sử dụng:

<script type="text/javascript"> 
    $(document).ready(function() { 
     // Disable browser cache Ajax.ActionLinks 
     $.ajaxSetup({ cache: false }); 
    }); 
</script> 
Các vấn đề liên quan