【发布时间】:2020-05-20 15:44:37
【问题描述】:
基本上,我有一个 C# MVC Web 应用程序,其控制器包含以下方法:
public ActionResult A (filters)
public ActionResult B (filters)
public ActionResult C (filters)
每个都接受过滤器,使用数据(来自存储过程的 SQL)填充模型中的列表,并生成一个视图(使用 DataTables)。就用户所见,他们单击一个按钮(A、B、C 等),选择所需的过滤器,单击“输入”,然后该过程运行,生成视图(基本上是一个报告)。用户可以重复执行此过程,并且这些视图/报告中的每一个都在页面上的其他视图/报告之上生成(它们可以上下滚动)。我想要做的是有一个不同的按钮 - >过滤页面,他们只选择他们想要生成的这些报告的“批次”。因此,如果用户选择“Batch 1”选项,它会生成报告 A(使用我定义的过滤器),然后生成报告 B(预定义的过滤器),然后生成报告 C(预定义的过滤器),理想情况下不需要来自需要用户。
最初,我一直希望有某种“超级控制器”,它会调用 ActionResult A,它会运行它的进程并生成视图。然后,它不会结束,而是返回到这个“超级控制器”,然后调用 ActionResult B 并运行整个进程,生成视图等。但是,我现在想知道这在 MVC 中是否可能。如果这是最“合乎逻辑”的解决方案,我确实觉得有点像,但控制器似乎不会让你实现这样的东西(至少以我尝试过的方式)。我也尝试过实现任务,但我唯一能做的就是创建 1 个巨大的视图/报告,它不能满足我的需要(即生成许多单独的视图,每个视图都包含通过 DataTables 导出为 PDF 等的能力)。如果有人能向我指出某种解决方案/想法来做到这一点,我将不胜感激。如果需要更多信息,请告诉我。
【问题讨论】:
-
我不确定你在问什么,但答案是 stackoverflow.com/questions/10915485/… 或部分视图 (stackoverflow.com/questions/4210138/view-vs-partialview)
-
您好,欢迎来到 Stack Overflow。除了@AlexeiLevenkov 提出的选项之外,将其视为两个单独的问题可能会很有用:1)您如何在控制器中组装视图模型,该控制器共享用于组装报告的逻辑,以及2) 在视图中,如何创建共享 presentation 的元素以显示报告。这可能会导致尝试聚合
ActionResults自己的更清洁和更简单的实现(我相信这是可能的,但会变得更加复杂)。
标签: c# asp.net-mvc web-applications batching