【问题标题】:Is it possible to "batch" generate views in an ASP.NET MVC Web Application C#?是否可以在 ASP.NET MVC Web 应用程序 C# 中“批量”生成视图?
【发布时间】: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


【解决方案1】:

您应该将来自控制器的操作视为您的 http 请求的入口点。所以,每个请求都映射到一个动作,所以这应该是不可能的,你不应该考虑这样做。

最好采取行动来接收能够生成超级报告所需的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2011-07-11
    • 2021-10-19
    相关资源
    最近更新 更多