在带有 Razor Pages Viewcomponent .Net Core 2.1 的选项卡中使用多个模型

Using multiple models in tabs with Razor Pages Viewcomponent .Net Core 2.1

我的要求比我要解决的普通单个 Viewcomponent 稍微复杂一些。

我使用 .Net Core 2.1 和 Entity Framework

构建了一个带有 Razor Pages 的网络应用程序

在其中一个页面上,我有一个选项卡式视图,用于输入和显示各种格式的信息,我现在将每个 "tab" 构建为一个单独的剃须刀页面,因为它们都使用多个模型,一个用于显示,一个用于捕获数据。 我尝试过使用部分视图,但没有任何运气,因为当我尝试更改整个页面重新加载的选项卡时,不理想而且速度相当慢。

进入 Viewcomponents,我可以获得一个简单的 viewcomponent,它使用一个模型可以正常工作,但是对于我有 2-3 个模型的其他选项卡 injected/bound 我似乎找不到实现它的方法。 我是不是对框架要求太高了?

注意。我正在尝试仅使用带有 CSharp 而没有 Javascript 的剃刀页面来执行此操作。 这是可能的还是我应该认输并转向 Angular-MVC?

有几个选项可供您选择。老实说,你最好的前进道路是一个包装器 class,如果你愿意的话,它本质上是一个模型的模型。您只需为您实际需要的每个单独模型创建一个带有属性的 class。这样您就可以将其用作页面的模型,但仍然可以访问选项卡的所有单独模型。

视图组件是一种有效的方法,但您应该意识到两件事:

  1. 视图组件渲染是完全独立的。换句话说,你的 main action/view 基本上变成了一个存根,它自己并没有真正做任何事情。相反,用于构建模型并将其传递给每个选项卡的视图的所有逻辑都包含在与该选项卡对应的视图组件中。

  2. 视图组件只是将 HTML 呈现到页面。您不能 post 到视图组件。您仍然会 post 执行您的实际主要操作,因此需要设置它来处理相关选项卡正在执行的任何操作。

最后,如果您不想在每次更改标签页时都往返于服务器,您至少需要 JavaScript 用于您的标签页界面。保持原样切换选项卡是动态功能,只有 JavaScript.

才有可能