我应该在MVC中使用Controller,Code Behind或Helper进行编写吗?

时间:2010-10-04 14:09:01

标签: asp.net-mvc model-view-controller code-behind asp.net-mvc-3

我已经看到所有关于视图没有代码隐藏的问题和答案,但我有一个案例,我需要复杂的逻辑来生成演示(视图)层。我必须根据从db获得的数据输出PDF文件。生成此PDF并写入响应流的最佳位置在哪里?从控制器执行response.write对我来说感觉非常错误,但我想对此做出响应,并使用代码隐藏文件来生成PDF。我想我可以将数据封装在一个viewmodel类中,并将其传递给Helper方法以生成输出,在这种情况下被认为是最佳实践,特别是在创建PDF时有很多逻辑?

2 个答案:

答案 0 :(得分:3)

我会为此创建一个ActionResult类,并从控制器返回它。 ActionResult类负责将内容写入输出流。

答案 1 :(得分:1)

更好的方法是定义一个特定于输出pdf文件的ActionResult。这样,您也可以在其他应用程序中轻松地重用代码