2012-06-20 181 views
12

我正在使用MVC C#以及Jquery。在ASP.NET MVC C中使用Jquery更新部分視圖#

我在具有多個選項卡的相當大的頁面中有局部視圖。

點擊一個複選框,我喜歡更新窗體中的局部視圖。 什麼我得到的卻是隻是局部視圖

這裏是我的jQuery代碼:

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

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

    }); 

對我怎麼能在我將如何做一個術語更新表單中的局部視圖任何想法打電話給它?

下面是PartialView

 return PartialView(Kits); 

至於提到的代碼,我所看到的顯示,而不是整個表格只是局部視圖。

回答

26

window.location.href將重新加載整個頁面。您需要重新加載頁面的一部分,而無需重新加載。我們可以使用jQuery ajax來做到這一點。讓我們來看看您可以使用哪些jQuery選擇器來獲取部分視圖。

例如,假設你的HTML標記就是這樣在主窗體(視圖)

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

而這裏DIVIDmyPartialViewContainer是div容器,其保持partial view。所以的內容,我們就只需使用jQuery重新加載該div的內容load方法

$(function(){ 

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

}); 
3

您正在通過window.location.href屬性將用戶重定向到您的partial的URL,因此只顯示該部分。

您應該對部分進行AJAX調用以檢索其HTML,然後使用類似.append方法的內容將其添加到您希望將其添加到的任何容器元素中。

編輯:.load()jQuery ajax方法實際上更適合這種特定的情況。

相關問題