Razor和ASPX有什么区别?

40

在MVC项目中,Razor和ASPX有什么区别吗?

它们只是语法不同吗?在阅读这篇文章之后,我是这样认为的... 我错了吗?


1
查看此文章的区别表。 - Zameer Ansari
6个回答

24

这一切归结于你网页视图中的语法,但ASPX和Razor是相当不同的视图引擎。Razor不依赖于与ASPX相同的管道。因此,我认为Razor只是一个解析引擎。

其中一个优点是,你可以对任何字符串运行Razor解析器,而aspx需要httpcontext和其他重量级元素。


19

我猜确实是这样的。

从文章中的例子可以看出,语法非常轻量级并且解释器相当“智能”。

您可以将其与spark视图引擎进行比较,并查看三者之间的区别。


4

Razor是Asp.net MVC应用程序的替代视图引擎,与.aspx完全不同。这就像Java MVC Web应用程序中JSP和Velocity之间的区别。


4

Razor支持测试驱动开发......而Web引擎中的system.web.ui.page类不支持TDD。测试驱动开发意味着在编写代码之前以某种方式测试代码。


1
  1. 默认情况下,Razor引擎可以防止XSS攻击(跨站脚本攻击),这意味着它在呈现到视图之前对脚本或HTML标记进行编码,例如<,>。
  2. Razor引擎支持TDD(测试驱动开发),因为它不依赖于System.Web.UI.Page类。

0
在我看来,我认为Razor是微软的一种策略,旨在吸引他们在引入.NET时被遗弃的所有经典ASP开发人员。这种编程范式与ASP非常相似,服务器端代码与客户端html/js交织在一起。这种环境再次容易导致“意大利面条式代码”的困境。
但对于像我这样长期使用ASP的开发人员来说,这是通往受支持平台的最直接途径。而且我仍然保留着我习惯的html/js的绝对控制权。
编辑:顺便说一下...我谈论的是在.cshtml中使用的Razor。我可能应该说.cshtml是微软的策略。

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