在ASP.NETMVC中,当两个局部视图都包含在同一个父视图中时,如何将数据列表从一个局部视图传递到另一个局部视图?

vxf3dgd4  于 2022-11-26  发布在  .NET
关注(0)|答案(1)|浏览(146)

我有两个局部视图,HeadphonesFiltersHeadphonesList,它们都包含在Index视图中,如下所示:

<div class="container">
    <div class="row">
        <h3 class="alert alert-primary p-2">Headphones</h3>
        <div class="col-4">
            @Html.Partial("HeadphonesFilters", new { minPrice=0,maxPrice=0})
        </div>
        <div class="col-8" id="headphones-list">
            @Html.Partial("HeadphonesList")
        </div>
    </div>
</div>

HeadphonesList局部视图接受Headphone类型对象的列表并显示它们。HeadphonesFilters局部视图应将过滤的耳机列表返回到HeadphonesList局部视图。
所有三个视图都访问相同的HeadphonesController
HeadphonesFilter局部视图使用Filter方法,如下所示:

public PartialViewResult Filter(int minPrice, int maxPrice)
{
    var list = service.GetHeadphones()
                      .Where(x => x.SKU.SKUPrice >= minPrice && 
                                  x.SKU.SKUPrice <= maxPrice)
                      .ToList();
    return PartialView("HeadphonesList", list);
}

这个filter方法在一个单独的页面中返回过滤后的耳机,而我希望这个列表转到HeadphonesList部分视图,并且该视图应该用新列表更新。
有没有办法做到这一点?

laximzn5

laximzn51#

我认为您应该使用 AJAX 从控制器获取数据以进行查看,而无需刷新整个页面

相关问题