2010-12-21 36 views
6

Tôi có một trang chứa một số liên kết người dùng. Tôi muốn tải các usercontrols sau khi postback như một rendering ajax.Hiển thị từng phần sau khi tải trang

Mỗi liên kết người dùng hiển thị danh sách từ cơ sở dữ liệu và tôi không muốn người dùng chờ trong khi mã máy chủ xây dựng phản hồi, tôi cho rằng nó sẽ hữu ích nếu trang được hiển thị cho người dùng và sau khi usercontrols được tải thông qua yêu cầu ajax .

Có giải pháp tồn tại trong ASP.NET MVC không? Có một giải pháp tồn tại cho vấn đề này?

cảm ơn trước: l.

Trả lời

5

Chỉ cần sử dụng jQuery để ràng buộc HTML trở về từ phương thức action (mà nên trả về một kết quả xem một phần - ví dụ như đầu ra của điều khiển người dùng/phần):

Bộ điều khiển:

[HttpGet] 
public PartialViewResult GetSomeData() 
{ 
    var data = somewhere.GetSomething(); 
    return PartialView(data); // partial view should be typed to data. 
} 

jQuery:

$(document).ready(function() { 
    $.get('/home/getsomedata/', function(data) { 
     $('#target').html(data); 
    }); 
}); 
+2

Bạn thậm chí có thể sử dụng ** $ ('# target'). Load ('/ home/getsomedata /') ** –

+0

Đúng - bạn chắc chắn có thể. – RPM1984

+0

Bạn cũng có thể tải dữ liệu PartialView bằng mã Razor không? –

3

tôi thường làm theo cách này:

Trong đánh dấu tôi dành không gian cho người dùng điều khiển được nạp như

<div id="i-tabs-5"> 
    <div style="text-align:right;margin-bottom:6px;">...</div> 
    <div id="issueNoteListPlaceholder"></div> 
</div> 

sau đó trên DOM Ready tôi thực hiện cuộc gọi ajax mà trả về một kết quả xem một phần và thay thế nội dung của placeholder

$(document).ready(function() { 
    loadIssueNotes(); 
}); 

function loadIssueNotes() { 
    $.ajax({ 
     type: "get", 
     dataType: "html", 
     url: '<%: Url.Content("~/Controller/Action") %>', 
     data: {}, 
     success: function (response) { 
      $("#issueNoteListPlaceholder").html('').html(response); 
     } 
    }); 
} 
+0

hehe, tâm trí tuyệt vời nghĩ như nhau. :) FYI '$ .get' thực hiện công việc trong hầu hết các trường hợp, trừ khi điều khiển tốt hơn là bắt buộc. – RPM1984

+0

hehe :) hoàn toàn đúng trên '$ .get'! – Lorenzo

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