【发布时间】:2010-10-27 15:39:23
【问题描述】:
我们的用户需要能够以 CSV 格式导出数据、编辑部分记录并再次上传数据。数据不会映射到实体,您可以说对象图被展平以适应基于 Excel 的工作流。
现在这种情况发生在控制器中,因为我认为这些 DTO 类是视图模型。它闻起来,但我不知道如何解决这个问题。有没有我可以/应该遵循的模式?
谢谢!
【问题讨论】:
标签: asp.net-mvc design-patterns csv dto
我们的用户需要能够以 CSV 格式导出数据、编辑部分记录并再次上传数据。数据不会映射到实体,您可以说对象图被展平以适应基于 Excel 的工作流。
现在这种情况发生在控制器中,因为我认为这些 DTO 类是视图模型。它闻起来,但我不知道如何解决这个问题。有没有我可以/应该遵循的模式?
谢谢!
【问题讨论】:
标签: asp.net-mvc design-patterns csv dto
首先将此逻辑抽象为包含必要方法的接口。针对 CSV 格式实现此接口。在控制器的构造函数中传递接口。使用 DI 注入正确的实现。在控制器动作中调用接口上的方法。
如果您想直接从控制器操作返回 CSV,您可以编写自定义 ActionResult,例如 CsvActionResult,它将获取模型并将其序列化为 CSV,以便在您的控制器操作中 return new CsvResult(someModel)。
【讨论】: