【问题标题】:What is the best way to create printable letters from an MVC application?从 MVC 应用程序创建可打印字母的最佳方法是什么?
【发布时间】:2010-10-15 05:02:24
【问题描述】:

从 MVC 应用程序创建可打印字母的最佳方法是什么?我正在从我的应用程序中寻找一种邮件合并的东西,它打印一个填有各种值的套用信函。

在 ASP.NET 中,我之前通过创建一个 HTML 文档并将其显示为 application/msword 来做到这一点,但我使用代码隐藏来做到这一点,这在 MVC 中不是一个(简单的)选项,而且我没有不知道这是否是最好的方法。

请注意,这是一个内部应用程序,因此可以假设每个人的计算机上都有 Word。话虽如此,绕过Word会很好,但我可以选择任何一种方式。越简单越好。欢迎任何想法/方法。

【问题讨论】:

  • 你能在 ShowModalDialog 弹出窗口中显示它吗?
  • 只要能打印干净(这些是给病人的信),我会尝试任何方法。

标签: html asp.net-mvc model-view-controller


【解决方案1】:

由于这只是 ContentType 设置为 application/msword 的 HTML,因此我看不出您想要使用代码隐藏的任何理由。

带有典型 HTML 模板的标准 MVC 视图和适当的 <%=...> 在需要插入视图数据的位置似乎是明智的方法。甚至你可能想要循环的地方。

顺便说一句,为什么代码隐藏不是一个简单的选择?

【讨论】:

  • 这种方法不会将打印留给浏览器,从而将所有工件添加到页眉和页脚中吗?
  • “简单选项”可能是错误的说法。 MVC 有点“不鼓励”代码隐藏,所以我试图保持这种状态,但如果这是适合这项工作的工具,那么我去那里没有问题。
  • @gfizzle:如果你设置 ContentType = "application/word" 如你所说,那么浏览器将不会处理内容,Word 会。
  • 在大多数情况下,视图不应该需要代码隐藏,因为大多数情况下代码隐藏表示选择/修改数据的逻辑。如果您的代码隐藏与控制器提供的日期的表示完全相关,那么它甚至是可取的。
【解决方案2】:

在您的控制器中:

return Content(contentGoesHere, "application/msword");

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 2021-07-25
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    相关资源
    最近更新 更多