C#Razor不会在随机行上编译

时间:2017-05-30 04:06:39

标签: c# asp.net-mvc razor

我确信我在Razor引擎中发现了一个错误。以下.cshtml文件是从较大的文件中剪切掉的,但问题仍然存在。

@{ string myVar = "code that does not compile"; }

@section Scripts {
<script type="text/javascript">
    function foobar() {

        @if (true) {
        <text>
        for (var i = 0; i < 100; i++) {
            @* An arbitrary comment *@
            if ("@(myVar)" === "code that does not compile") {
                console.log("@("code that does compile")");
            }
        }
        </text>
        }
    }

</script>
}

实际上,这是一个有效的.cshtml文件。 Intellisense按预期工作,并在浏览器中编译。

问题在于,如果我删除“任意注释”行,突然if语句的条件停止编译。 Intellisense不再将其识别为Razor标记,并且在渲染时不再编译。然而,console.log行中的Razor代码继续按预期编译。

这是一个相当随意的问题的例子,但它在不同场景中反复出现,这让我很生气。我不得不插入随机Razor注释以使标记编译正确。

发生了什么事?

0 个答案:

没有答案