14

Jquery と一緒に MVC C# を使用しています。

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

チェックボックスをクリックすると、フォーム内の部分ビューが更新されます。私が代わりに得ているのは、部分的なビューです

Jqueryでの私のコードは次のとおりです。

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

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

    });

フォームを呼び出す方法に関して、フォーム内の部分ビューを更新する方法について何か考えはありますか?

PartialView のコードは次のとおりです。

     return PartialView(Kits);

前述のように、表示されているのは表示されている部分的なビューであり、フォーム全体ではありません。

4

2 に答える 2

32

window.location.hrefページ全体をリロードします。完全にリロードせずに、ページの一部をリロードする必要があります。これを行うには、jQuery ajax を使用できます。Partialview を取得するために使用できる jQuery セレクターを調べてみましょう。

たとえば、HTML マークアップがメイン フォーム (ビュー) で次のようになっているとします。

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

そして、ここでDIVwithID myPartialViewContainerは、のコンテンツを保持するコンテナ div です。そのため、jQueryロードメソッドpartial viewを使用して、その div のコンテンツをリロードするだけです。

$(function(){

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

});
于 2012-06-20T14:58:54.667 に答える
3

window.location.href プロパティを介してユーザーをパーシャルの URL にリダイレクトしているため、そのパーシャルのみが表示されます。

代わりに、パーシャルに対して AJAX 呼び出しを実行して HTML を取得し、.append メソッドなどを使用して、追加したいコンテナー要素に追加する必要があります。

編集: .load() jQuery ajax メソッドは、実際にはこの特定の状況に適しています。

于 2012-06-20T14:58:02.550 に答える