在Composite C1中使用非严格XHTML的.cshtml页面

时间:2014-09-10 09:36:24

标签: c1-cms

我需要在复合C1网站中包含一些不强制执行严格的XHTML / XML的.cshtml / razor页面。

ie - 例如,当前任何未关闭的标签会阻止页面加载。

客户需要这个;有可能吗?

由于

2 个答案:

答案 0 :(得分:2)

在CDATA部分中包装错误/不安全标记。由于在Composite C1渲染引擎中主要需要严格的XML要求,并且通常不关心浏览器,因此Composite C1将CDATA部分视为“杂乱的标记”,它不会解析,而只是发出raw:

<div>
  <![CDATA[
    Bad & ugly HTML!<br>
  ]]>
</div>

它将无阻碍地通过Composite 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>

答案 1 :(得分:2)

您可以将函数的Return Type设置为string(默认为htmlDocument)。您可以通过覆盖ReturnType属性来完成此操作,如此

@functions
{
   protected override Type FunctionReturnType
   {
      get { return typeof(string); }
   }
}