我正在使用 Umbraco 4.11.8 并想创建一个 PDF。我有 HTML 代码,应该可以下载为 PDF
我找到了一个包RazorPDF,它在 MVC 示例中完美运行。
但是当我在 Umbraco 尝试时,我不知道如何获得它。
我需要 SurfaceController 还是其他任何东西。
如果是,我如何说 Umbraco 使用我的(表面)控制器?
我正在使用 Umbraco 4.11.8 并想创建一个 PDF。我有 HTML 代码,应该可以下载为 PDF
我找到了一个包RazorPDF,它在 MVC 示例中完美运行。
但是当我在 Umbraco 尝试时,我不知道如何获得它。
我需要 SurfaceController 还是其他任何东西。
如果是,我如何说 Umbraco 使用我的(表面)控制器?
您需要的最佳起点是: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" />
我把它作为答案,所以它更具可读性。随意编辑。
我找不到我的错或我错过了什么。
我的控制器签名是这样的: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
.