【问题标题】:How to use RazorPDF in Umbraco 4.11如何在 Umbraco 4.11 中使用 RazorPDF
【发布时间】:2013-08-12 13:14:13
【问题描述】:

我正在使用 Umbraco 4.11.8 并想创建一个 PDF。 我有 HTML 代码,应该可以作为 PDF 下载

我找到了一个包 RazorPDF,它在 MVC 示例中完美运行。

但是当我在 Umbraco 中尝试时,我不知道如何获得它。

我需要 SurfaceController 还是其他任何东西。

如果是,我如何说 Umbraco 使用我的(表面)控制器?

【问题讨论】:

    标签: asp.net-mvc pdf razor umbraco razorpdf


    【解决方案1】:

    我把它作为答案,所以它更具可读性。随意编辑。

    我没有找到我的错或我错过了什么。

    我的Controller签名是这样的:public class PdfCreatorController : Controller

    我要调用的方法称为public override ActionResult Pdf()

    我的路线:

    RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        RouteTable.Routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );`. 
    

    然后我尝试像 www.url.com/PdfCreator/Pdf 这样调用我的控制器。

    【讨论】:

      【解决方案2】:

      您需要的最佳起点是:http://our.umbraco.org/documentation/Reference/Mvc/

      但不,严格来说,您不需要 SurfaceController。如果您想通过控制器访问 Umbraco 上下文以获取您正在发出的请求,则只需要一个。

      因此,如果您只想让控制器为您的 PDF 提供服务,您可以使用标准控制器实现。不过,您将不得不为此调整路线,这一切都包含在上面的 Umbraco 文档中。

      编辑:

      你需要这样的路线:

      RouteTable.Routes.MapRoute(
          name: "PdfRazor",
          url: "PdfCreator/{action}"
      );
      

      您还需要将路径添加到 Web.config 以供 Umbraco 忽略,例如:

      <add key="umbracoReservedPaths" value="~/umbraco,~/install,~/pdfcreator" />
      

      【讨论】:

      • 我在 WebForms-Mode 中使用 Umbraco。我必须在 UmbracoSettings.config 中更改它吗?我也很困惑,因为我没有找到 Global.asax.cs。
      • 您仍然可以在 Web 表单模式下使用控制器。想象一下,这不是一个 Umbraco 站点,而是一个标准的 webforms 项目。只要您设置了路线,您就可以使用控制器。 Wrt global.asax.cs,您可能需要创建一个并让它继承自UmbracoApplication。然后 Global.asax 文件可以从你的全局类继承。
      • 控制器是否必须在 Controllers 文件夹中?现在我从 IIS 收到 404 错误,而不再来自 Umbraco。
      • 您使用的是什么 IIS? 6 或 7+。如果是 6,则需要设置通配符映射。如果您使用的是 IIS7+,则不是这样
      • 现在我将项目更改为网络表单模式并制作了一个模板(测试),现在位于视图文件夹中。我可以用 www.url.com/test 调用它。然后我试图劫持这条路线。我学习了本教程our.umbraco.org/forum/developers。我创建了一个名为 TestController 的控制器,并尝试使用 RazorPDF 将视图显示为 PDF,但它仍然显示正常的 HTML 模板,因此我无法进入控制器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多