1

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

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

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

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

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

4

2 回答 2

0

您需要的最佳起点是: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" />
于 2013-08-12T13:56:01.830 回答
0

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

我找不到我的错或我错过了什么。

我的控制器签名是这样的: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.

于 2013-08-12T14:25:49.187 回答