ASP.NET - @ 语法和 <% %> 的区别是什么?

3

我刚开始做一份使用ASP.NET的工作,但我对它还不是很熟悉。

在大多数.cshtml文件中,都有带有“@”符号的C#代码块,但我也看到了<% %>行似乎在做同样的事情(尽管<%>经常与HTML代码混合在一起)。

我在网上唯一找到的比较这两者的网站是: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/ 这很有帮助,但似乎显示了两种语法形式用于完全相同的事情。

它们之间有什么区别?为什么要使用一个而不是另一个呢?


2
WebForms已经存在很久了(将近15年!)并使用<% %>语法。Razor是较新的技术,使用@...语法,但它也支持旧版本。 - DavidG
@DavidG 把它作为一个答案发布 :P - Dispersia
我喜欢DavidG的回答。我要补充一点,我更喜欢新的@语法,但我认为哪个更好更多是一种观点而已。我更喜欢新的@语法是因为它看起来更加“清晰”,但我认为这完全是主观的。我个人会尽量保持同一文件的一致性,但在新文件中使用@,但我并不是说哪个更好。当然,我的老板的偏好或任何团队标准比我的更重要。 - Shawn Kovac
1个回答

2

WebForms是一种非常古老的技术(我写这篇文章时已经有近15年了!),它使用<% ... %>语法。

早期版本的MVC也使用与WebForms相同的语法。后来,在2010年左右发布了MVC3,使用了称为Razor的新语法语言,它同时使用了旧风格和新的@...语法。

在同一个文件中同时使用两种语法风格有点奇怪,我的建议是对于任何新项目都应该坚持使用Razor语法,甚至可以考虑重构旧代码以保持一致性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接