2011-07-28 52 views
6

Tôi cần làm mới định kỳ chế độ xem một phần của .Net. Nó đang làm việc với Ajax.ActionLink, có một tính năng tương tự để làm mới định kỳ không? Tôi có thể làm điều đó mà không cần sử dụng jQuery không?Định kỳ Làm mới một phần xem (ASP.Net MVC)

+0

việc kiểm tra này http://stackoverflow.com/questions/3167116/asp-net-mvc-refresh-table-data-every-5-seconds – raym0nd

+0

Bạn có thể đặt này trong html của bạn: raym0nd

+0

Có thể thực hiện mà không cần js không? –

Trả lời

9

Zen, bạn có thể làm điều đó bằng một mã như thế này:

function loadPartialView() { 
    $.ajax({ 
    url: "@Url.Action("ActionName", "ControllerName")", 
    type: 'GET', // <-- make a async request by GET 
    dataType: 'html', // <-- to expect an html response 
    success: function(result) { 
       $('#YourDiv').html(result); 
      } 
    }); 
} 

$(function() { 

    loadPartialView(); // first time 

    // re-call the function each 5 seconds 
    window.setInterval("loadPartialView()", 5000); 

}); 

Ghi Hành động của bạn phải trả lại một PartialView. Tôi hy vọng nó sẽ giúp bạn!

+0

Tôi đã tìm kiếm không jQuery nhưng anyways, cảm ơn (+1). –

+0

Điều này làm việc cho tôi trong Chrome và Firefox, nhưng không phải trong IE 9 (Không bận tâm khi thử các trình duyệt IE khác), nhưng hiện tại, điều đó là đủ tốt. +1 – Yetti

2

Có thể this có thể giúp bạn. Bạn đang sử dụng phiên bản MVC nào? Bạn có thể thiết lập một khoảng thời gian xác định cho một phương thức trợ giúp. Đây là cách duy nhất tôi đã nhìn thấy mà không sử dụng js.

+0

Tôi đang sử dụng MVC 2, VS 2010 –

+0

Bạn có thể gặp sự cố khi sử dụng phương pháp này sau đó. Nhưng đó là cách duy nhất mà tôi đã nhìn thấy để thực hiện điều này mà không sử dụng js, mọi thứ khác là js liên quan. –

+1

Thực ra, nó đang sử dụng js nhưng js chỉ được nhúng. –

0

Hãy thử điều này.

$(document).ready(function() { 
      var url = "@(Html.Raw(Url.Action("ActionName", "ControllerName")))"; 
      $("#PartialViewDivId").load(url); 
     setInterval(function() { 
      var url = "@(Html.Raw(Url.Action("ActionName", "ControllerName")))"; 
      $("#PartialViewDivId").load(url); 
     }, 30000); //Refreshes every 30 seconds 

     $.ajaxSetup({ cache: false }); //Turn off caching 
    }); 

Thực hiện cuộc gọi ban đầu để tải div và sau đó các cuộc gọi tiếp theo sẽ diễn ra trong khoảng thời gian 30 giây.

Trong phần bộ điều khiển, bạn có thể cập nhật đối tượng và chuyển đối tượng đó sang chế độ xem từng phần.

public class ControllerName: Controller 
{ 
    public ActionResult ActionName() 
    { 
     . 
     . // code for update object 
     . 
     return PartialView("PartialViewName", updatedObject); 
    } 
} 
Các vấn đề liên quan