在ASP.NET MVC C#中使用Jquery更新部分视图

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

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

window.location.href将重新加载整个页面。 您需要重新加载页面的某些部分而不需要完全重新加载。 我们可以使用jQuery ajax来做到这一点。 让我们看看你可以用什么jQuery选择器来获得Partialview。

例如,假设您的HTML标记在主窗体中是这样的(视图)

 

Some content

@Html.Partial("_FeaturedProduct")
Some other content

在这里, ID myPartialViewContainerDIV是Container div,它保存了partial view的内容。因此我们将使用jQuery 加载方法简单地重新加载该div的内容

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

您正在通过window.location.href属性将用户重定向到部分的URL,因此仅显示该部分。

您应该对partial执行AJAX调用以检索它的HTML,然后使用类似.append方法的内容将其添加到您希望将其添加到的任何容器元素中。

编辑:.load()jQuery ajax方法实际上更适合这种特定情况。