Подтвердить что ты не робот

Обновление частичного представления с помощью Jquery в ASP.NET MVC С#

Я использую MVC С# вместе с JQuery.

У меня есть частичный вид на довольно большой странице с несколькими вкладками.

При щелчке по флажку мне нравится обновлять частичный вид WITH IN формы. Вместо этого я получаю только частичный вид

Вот мой код в JQuery:

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

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

    });

Любая идея о том, как я мог бы обновить частичный вид в форме с точки зрения того, как я мог бы позвонить?

Вот код для PartialView

     return PartialView(Kits);

Как уже упоминалось, я вижу только частичное представление, а не всю форму.

4b9b3361

Ответ 1

window.location.href перезагрузит всю страницу. Вам необходимо перезагрузить часть своей страницы без полной перезагрузки. Мы можем использовать jQuery ajax для этого. Позвольте узнать, какой селектор jQuery вы можете использовать, чтобы получить Partialview.

Например, предположим, что ваша разметка HTML похожа на основную форму (представление)

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

И здесь DIV с ID myPartialViewContainer - это контейнер Container, который содержит содержимое partial view. Поэтому мы просто перезагружаем содержимое этого div, используя jQuery load

$(function(){

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

});

Ответ 2

Вы перенаправляете пользователя через свойство window.location.href URL-адрес вашего частичного, следовательно, только отображая это частичное.

Вместо этого вы должны сделать AJAX-вызов частичной для извлечения HTML-кода, а затем использовать что-то вроде метода .append, чтобы добавить его в любой элемент контейнера, который вы хотите добавить.

EDIT: метод jQuery aload.load() jQuery действительно лучше подходит для этой конкретной ситуации.