2012-06-20 48 views
12

私はJqueryと共にMVC C#を使用しています。ASP.NET MVCでJqueryで部分ビューを更新するC#

かなり大きなページには、いくつかのタブがあり、部分的なビューがあります。

チェックボックスをクリックすると、フォーム内の部分表示が更新されます。 私が代わりに取得していますことは、単に部分図

ここ

の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を使用できます。 Partialviewを取得するために使用できるjQueryセレクターを調べてみましょう。たとえば、あなたのHTMLのマークアップがIDmyPartialViewContainerでメインフォーム(ビュー)

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

そして、ここでDIVにこのようなものであると仮定すると、我々は意志partial view。だからの内容を保持しているコンテナのdiv

ですjQueryを使用してそのdivのコンテンツをリロードするだけで

$(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プロパティを使用して、部分的なURLにユーザーをリダイレクトしているため、その部分のみを表示します。

代わりにAJAXを呼び出してHTMLを取得し、.appendメソッドのようなものを使用して追加するコンテナ要素に追加します。

EDIT:この特定の状況では実際には.load()jQuery ajaxメソッドが優れています。

関連する問題