【发布时间】:2014-09-15 18:24:13
【问题描述】:
我需要在 Composite C1 站点中包含一些 .cshtml / razor 页面,这些页面不强制执行严格的 XHTML / XML。
ie - 目前任何未关闭的标签,例如,阻止页面加载。
客户需要这个;有可能吗?
谢谢
【问题讨论】:
标签: c1-cms
我需要在 Composite C1 站点中包含一些 .cshtml / razor 页面,这些页面不强制执行严格的 XHTML / XML。
ie - 目前任何未关闭的标签,例如,阻止页面加载。
客户需要这个;有可能吗?
谢谢
【问题讨论】:
标签: c1-cms
将错误/不安全的标记包装在 CDATA 部分中。由于 Composite C1 渲染引擎内部主要需要严格的 XML 要求,并且通常不是浏览器的关注点,因此 Composite C1 将 CDATA 部分视为“杂乱的标记”,它不会解析,而只是发出原始的:
<div>
<![CDATA[
Bad & ugly HTML!<br>
]]>
</div>
它将不受阻碍地通过复合C1并出来:
<div>
Bad & ugly HTML!<br>
</div>
以上引自http://docs.composite.net/Layout/Writing-XHTML
这是一个使用 Razor 语法的简单示例:
<div>
<![CDATA[
@{
string unstructuredMarkup = "Bad & ugly HTML!<br>";
@Html.Raw(unstructuredMarkup);
}
]]>
</div>
【讨论】:
您可以将函数的 ReturnType 设置为字符串(默认为 XhtmlDocument)。您可以通过像这样覆盖 ReturnType 属性来做到这一点
@functions
{
protected override Type FunctionReturnType
{
get { return typeof(string); }
}
}
【讨论】: