代码之家  ›  专栏  ›  技术社区  ›  Hammerite

如何防止ASP.NET核心检测我编写的对布局引擎具有特殊意义的文本?

  •  0
  • Hammerite  · 技术社区  · 6 年前

    我有以下观点:

    <p>
        @if (xyz == abc)
        {
            Start:
            ...
        }
    </p>
    

    visualstudio的行为似乎表明“Start:”被解释为对布局引擎具有特殊意义。它用一条绿色的波浪线给它加下划线,当我把鼠标移到它上面时,它会显示一个工具提示,上面写着“这个标签没有被引用”。

    “开始:”只是文字,我想从字面上吐到页面上。我不想调用一些特殊的功能。我如何让它明白这一点?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Kirk Larkin    6 年前

    你可以使用 explicit line transition ,这只是 @: 顺序。在您的示例中,Razor在遇到 Start: ,因此它假定它仍在使用C代码作为 是有效的C#语法(例如。 goto 显式指示Razor解析器将内容视为HTML:

    <p>
        @if (xyz == abc)
        {
            @:Start:
            ...
        }
    </p>
    

    你也可以用剃刀 text

    <p>
        @if (xyz == abc)
        {
            <text>Start:</text>
            ...
        }
    </p>