2012-06-20 42 views
12

Tôi đang sử dụng MVC C# cùng với Jquery.Cập nhật một phần xem bằng Jquery trong ASP.NET MVC C#

Tôi có một chế độ xem một phần trong một trang khá lớn có một số tab.

Khi nhấp vào hộp kiểm, tôi muốn cập nhật chế độ xem một phần WITHIN biểu mẫu. Những gì tôi nhận được thay vào đó chỉ là quan điểm phần

Đây là mã của tôi trong Jquery:

$('#activelist,#inactivelist').change(function() { 

     var status = 'inactive'; 
     window.location.href = '@Url.Action("Skits","KitSection")' + '?id=' + id+ '&status=' + status; 

    }); 

Bất kỳ ý tưởng về làm thế nào tôi có thể cập nhật xem một phần trong một hình thức về làm thế nào tôi có thể làm cho một gọi cho nó?

Đây là mã cho PartialView

 return PartialView(Kits); 

Như đã đề cập, những gì tôi nhìn thấy chỉ là xem phần hiển thị và không phải là toàn bộ mẫu.

Trả lời

26

window.location.href sẽ tải lại toàn bộ trang. Bạn cần phải tải lại một số phần của trang mà không cần tải lại hoàn toàn. Chúng ta có thể sử dụng jQuery ajax để làm điều này. Hãy tìm hiểu bộ chọn jQuery mà bạn có thể sử dụng để có được Partialview.

Ví dụ Giả sử đánh dấu HTML của bạn là như thế này trong hình thức chính (xem)

<div> 
    <p>Some content</p> 
    <div id="myPartialViewContainer"> 
     @Html.Partial("_FeaturedProduct") 
    </div> 
    <div>Some other content</div> 
</div> 

Và ở đây DIV với IDmyPartialViewContainer là div container mà giữ nội dung của partial view Vì vậy, chúng tôi sẽ chỉ cần tải lại nội dung của div đó bằng cách sử dụng phương thức jQuery load

$(function(){ 

    $('#activelist,#inactivelist').change(function() { 
     var id="someval"; 
     var status = 'inactive'; 
     $("#myPartialViewContainer").load('@Url.Action("Skits","KitSection")' + '?id=' + id+ '&status=' + status) 
    }); 

}); 
3

Bạn đang chuyển hướng người dùng, thông qua thuộc tính window.location.href, đến URL của một phần của bạn, do đó chỉ hiển thị phần đó.

Bạn nên thực hiện cuộc gọi AJAX một phần để truy xuất HTML của nó và sau đó sử dụng một cái gì đó như phương thức .append để thêm nó vào bất kỳ phần tử vùng chứa nào bạn muốn thêm vào.

EDIT: The .load() Phương thức jQuery ajax thực sự tốt hơn cho tình huống cụ thể này.

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