使用prettyPrint在cshtml中显示示例cshtml代码

时间:2015-11-25 18:32:45

标签: asp.net-mvc asp.net-mvc-4 razor

我尝试使用prettyPrint在网页上显示一些代码示例,除了cshtml之外,所有代码示例都在工作(大多数是C#)。

'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'Partial' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.

我不确定应该做什么,显然<div>不应该嵌套在<pre>中,而cshtml中的C#函数会导致浏览器问题 - 将课程更改为lang-cslang-cshtml也无效。

有人可以解释一下为什么浏览器会呈现代码而不是javascript显示代码吗?

代码: 基本上我想按以下方式显示代码。

<pre class="prettyprint lang-html">
<div id="catalogueList">
    // some cshtml code
</div>
</pre>

1 个答案:

答案 0 :(得分:2)

用@@替换单个@,r​​azor引擎将跳过可执行代码并将它们呈现为纯文本。

更新:此解决方案有助于直接呈现在视图上写入的代码片段(与呈现页面的实际剃刀代码内联)。如果代码段是动态的并且包含在变量中,那么这不是必需的。

更新2:在<xmp>标记之间嵌套<pre class="prettyPrint">开始和结束标记,一旦添加了@符号,就可以渲染html以停止剃刀引擎渲染示例代码。

**示例:**

<pre class="prettyprint">
    <xmp>
<div id="catalogueList">
    @@using (Html.BeginForm())
    {
        @@Html.TextBoxFor(m => m.userName)
<br />
<div id="editorRowsMovies">
            @@foreach (var item in Model.movies)
            {
                @@Html.Partial("MovieView", item)
            }
        </div>
        @@Html.ActionLink("Add", "MovieManager", null, new { id = "addItemMovies" });
<br />

<input type="submit" value="Submit" />
    }
</div>
</xmp>
</pre>