将 iFrame 宏添加到 Umbraco

Add iFrame macro to Umbraco

我正在添加 XSLT 以在 Umbraco 中添加 iFrame。

这是我的 XSLT

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxml="urn:schemas-microsoft-com:xslt"
  xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:seoChecker.MetaData="urn:seoChecker.MetaData" xmlns:PS.XSLTsearch="urn:PS.XSLTsearch"
  exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets seoChecker.MetaData PS.XSLTsearch ">

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:param name="currentPage"/>
<xsl:variable name="location" select="/macro/location"/>
<xsl:variable name="width" select="/macro/width"/>
<xsl:variable name="height" select="/macro/height"/>
<xsl:template match="/">
  <iframe src="{$location}" width="{$width}" height="{$height}" type="text/html" frameborder="0">
Sorry, your browser does not support IFRAMES
</iframe>
</xsl:template>
</xsl:stylesheet>

显然,当我将宏添加到表单和 运行 页面时,它会抛出一个错误

Error reading XSLT file: iFrameContactUs.xslt

我已按照此 link

中的步骤操作

遵循的步骤

@Umbraco.RenderMacro("IFrameContactUs", 新 {height="700px", location="url of the page", width="500px"})

但是,当我 运行 代码时,我收到错误提示

Error reading XSLT

谁能告诉我 XSLT 有什么问题以及为什么它没有 运行ning 在我的网站上

版本 7 中删除了 Umbraco 特定的 XSLT 扩展,这就是它失败的原因。

相反,转到开发人员 -> 部分视图宏文件并在那里创建一个。记得在"Create Macro".

里打勾

在文件中插入以下内容:

@inherits Umbraco.Web.Macros.PartialViewMacroPage
<iframe src="@Model.MacroParameters["location"]" width="@Model.MacroParameters["width"]" height="@Model.MacroParameters["height"]" type="text/html" frameborder="0">
Sorry, your browser does not support IFRAMES
</iframe>

将与以前相同的参数添加到实际的宏中,它应该完全按计划工作(而且它甚至简短易读);-)