我知道这个问题已经被问过很多次了,但我相信我的情况有点不同,我只是在寻找处理它的最佳方法。
我有 3 个局部视图和 3 个相应的视图模型。一个用于类别、部门和产品。
一个类别包含一个部门的集合。一个部门包含一个产品的集合。
在我的主视图中,我在 3 个局部视图上调用 RenderPartial ...
@{ Html.RenderPartial("_Categories", Model.Categories); }
@{ Html.RenderPartial("_Divisions", Model.Divisions); }
@{ Html.RenderPartial("_Products", Model.Products); }
我使用 jQuery 来更新相应的部分视图作为所选类别、部门和产品的更改。
现在问题出在哪里......当我选择一个类别时,我使用该类别的部门更新部门部分。但我还想做的是根据第一个部门更新产品部分收集,因为最初没有选择任何部门。
我想出了几个不同的选择来处理这个问题,我不确定什么是最好的方法......
我可以等到我的第一个 AJAX 调用返回并包含部门集合,然后再进行第二个 AJAX 调用来更新产品。但是出于明显的性能考虑,我不想这样做
我可以构造我的局部视图,使 Category 局部视图包含 Division 局部视图,而 Division 局部视图包含 Products 局部视图。这样,当我的类别发生变化时,我可以通过一次 AJAX 调用更新产品。我遇到的问题是......将在我的部门和产品部分视图之间定义的所有静态 HTML 将在每个 AJAX 调用上传递。
我可以修改我的 AJAX 调用以返回包含所有模型的 JSON 对象并更新视图客户端。但是,我非常喜欢能够修改视图在服务器中的呈现方式的灵活性。而不是连接一堆客户端的html。
如果我可以通过一个 AJAX 调用返回多个部分视图,那么这将解决我的问题。但是,如果我在架构上做错了什么,我很乐意改变它。有什么建议吗?谢谢!!