Razor中@:和<text>之间的区别

时间:2016-05-20 14:17:29

标签: c# asp.net asp.net-mvc razor razor-2

Razor中这两个之间的区别是什么?我发现无论是使用@:还是<text>,我都能做到这一点。

2 个答案:

答案 0 :(得分:16)

Scott Guthrie wrote about both on his blog。他的回答基本上归结为<text>支持多行,而@:则是一行更紧凑的形式。

答案 1 :(得分:0)

<text>允许您放置Razor可能认为它是C#代码的原始文本,而您实际上希望将其显示给用户一样。尽管@本质上是相反的,但是它允许您将C#(剃刀)代码放入主代码中,并用结果中的值替换表达式。您可能希望在服务器端(使用Razor)在某些Javascript中放置一个变量,但它认为Javascript代码是C#(Razor)。例如,请参见this

<script>

      @if(Model.Something)
      {
          <text>myFunction1('something');</text>
      } else {
          <text>myFunction2('something');</text>
      }

</script>

如果省略了<text>,则myFunction1('something');将被视为C#(剃刀)。