Razor中这两个之间的区别是什么?我发现无论是使用@:
还是<text>
,我都能做到这一点。
答案 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#(剃刀)。