我应该像 ViewComponent 一样创建我的搜索过滤器框吗?

Should I create my search filters box like as a ViewComponent?

我在 web 中找到的所有示例都将 ViewComponents 用于解析自身的复杂组件,换句话说,执行某些逻辑并显示某些结果而不与调用者视图交互的组件。

但是我有下面的搜索框,它将在某些视图中使用,并且应该与调用者视图交互

当用户单击搜索按钮时,调用方视图将在网格或 table 中加载过滤后的数据。

在 asp.net webforms 中,我可以在用户控件中创建自己的搜索过滤器框,但在 netcore 中,我不知道是否应该为此使用这个名为 ViewComponent 的新功能。

你怎么看?

对此没有真正的答案。我的经验法则:如果您使用此搜索筛选框的视图共享相同的视图模型,并且稍后搜索框不太可能用于非常不同的视图:从局部视图开始。如果搜索框将用于具有不同视图模型的非常不同的视图:实现视图组件。 视图组件更独立于部分视图,因为它们在其对应的 class 中有自己的代码,因此它们可以构建自己的视图模型。因此,您的搜索框只会松散地耦合到您的视图,如果您以后想调整某些内容,则不必在组件外部进行太多更改。 如果你只是想保存一段重复的cshtml代码,局部视图就足够了。