14

我正在使用 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);

如前所述,我看到的只是显示的部分视图,而不是整个表单。

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是 Container div,它包含 .so 的内容。所以我们将使用 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 回答