【问题标题】:How do I escape curly braces in Asp .Net MVC Razor?如何在 Asp .Net MVC Razor 中转义大括号?
【发布时间】:2015-04-21 18:37:54
【问题描述】:

我正在尝试按如下方式绑定数据属性:

@Html.Label("test", new { data_test = "{{vm.test}}" })

渲染后,我看到的是:

<label data-test for="test">test</label>

如何转义花括号,以便在页面上呈现它们?我尝试过的一些事情是:

  • {{{{vm.test}}}}
  • \\{\\{vm.test\\}\\}

【问题讨论】:

  • 所以你想要&lt;label data-test="{{vm.test}}" for="test"&gt;test&lt;/label&gt; 的输出?
  • 或者您是否希望出现 vm.test 的值,例如如果 vm.test 的值是“blah”,那么 &lt;label data-test="blah" for="test"&gt;test&lt;/label&gt;
  • 我测试了第一个场景,它工作正常,你可以在检查器中看到你得到data-test="{{vm.test}}":dotnetfiddle.net/hWYlqITested using Chrome
  • 是的,这就是我要找的 - data-test="{{vm.test}}。不知道为什么我没有得到相同的输出。我唯一能想到的是我不知道的 project/web.config 设置。感谢您的观看。
  • 有时浏览器会弄乱你的 DOM。您在浏览器检查器中看到的是解析 HTML 的结果,它会修复诸如不匹配的引号或标签之类的东西。使用浏览器中的网络选项卡查看实际响应以在解析之前查看原始 HTML,检查数据属性是否存在。如果您有任何杂散字符,它们可能会导致语法问题,并且当浏览器尽力修复语法时,您的属性值会丢失。

标签: asp.net-mvc angularjs razor


【解决方案1】:

如果您需要显示花括号,就像您在解释车把逻辑时一样,并且您不需要任何其他构造:

代码:

<note>Example: @("{{object.exampleField}}")</note>

显示:

Example: {{object.exampleField}}

【讨论】:

  • 谢谢!尝试使用 @: 和其他方法来逃避这些......
【解决方案2】:

在代码块内,您不能使用@ 字符来创建更多代码块。 类似:

@Html.Label("test", new { data_test = "{{@vm.test}}" })

【讨论】:

    【解决方案3】:

    要在 razor 中编写大括号“{}”,请使用“at”和“冒号”的组合。 示例:@:{

    我是在使用把手时才发现的。

    要写“@”,请多使用一个“at”符号。

    示例:@@

    希望对正在寻找它的新人有所帮助!

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2014-04-25
      • 2020-07-20
      • 2013-10-04
      • 2014-02-18
      相关资源
      最近更新 更多