Asp.net mvc 我应该从MVC中的控制器、代码隐藏或助手处编写代码吗?

Asp.net mvc 我应该从MVC中的控制器、代码隐藏或助手处编写代码吗?,asp.net-mvc,model-view-controller,code-behind,asp.net-mvc-3,Asp.net Mvc,Model View Controller,Code Behind,Asp.net Mvc 3,我已经看到了所有关于视图没有代码隐藏的问题和答案,但是我有一个案例,我需要复杂的逻辑来生成表示(视图)层。我必须根据从db获得的数据输出一个PDF文件。生成此PDF并写入响应流的最佳位置在哪里?从控制器执行response.write对我来说是非常错误的,但我希望对此做出响应,并使用代码隐藏文件为视图生成PDF。我想我可以将数据封装在一个viewmodel类中,并将其传递给一个助手方法来生成输出,在这种情况下,什么是最佳实践,特别是在创建PDF时有很多逻辑?我将为此创建一个ActionResul

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

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

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

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

下面是一个如何执行此操作的示例,虽然格式不太美观,但它确实有用。这一个看起来好一点:这里有一个如何做的例子,格式不是很漂亮,但它是一些东西。这个看起来好一点: