MVC Razor超过ASPX

时间:2014-04-22 07:48:19

标签: asp.net-mvc razor

我是MVC的新手,我正在使用一个MVC应用程序使用aspx引擎(视图在aspx中创建)。现在需要迁移应用程序的GUI,并且我已经读过 razor 提供了优于 aspx 引擎的好处。所以,哪个更好实现。

但是,我更关注应用程序的性能及其可维护性。那么,有谁可以让我知道哪一个满足上述要求?

4 个答案:

答案 0 :(得分:1)

你可以在一个项目中混合使用Razor和ASPX,但是你不能将ASPX中的Master页面重用为Razor布局页面(至少没有一些技巧AFAIK)。

因此,根据现有应用程序的大小和添加量,将现有页面转换为Razor或继续使用ASPX可能是有意义的。

出于可维护性原因,我个人不会在同一个应用程序中混用这两个。

评论后更新:
1000个屏幕绝对不是中型IMO,但如果你没有使用布局和/或母版页,你可能真的最好"混合它们"从新页面的更好/更容易的语法和性能中受益,但没有要求适应旧的页面。当旧页面由于其他原因而被更改时,可以逐个打印旧页面。
你的团队在进入Razor时不会遇到大问题,因为它非常接近正常编程"而且你只需要学习很少的语法和#34;特色" ...

答案 1 :(得分:1)

我想说Razor的优点如下:

  • 简洁的语法,与您编写常规C#的方式非常相似 代码(请查看Phil Haack最近的博客文章 将Asxp与Razor语法进行比较: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

  • 输出的自动HTML编码(有助于保护您免受html攻击 注射攻击)

  • 内置(但不是100%)验证您的标记可以帮助您        避免不平衡的标签

与页面相关的概念也可以轻松地映射到ASPX中的内容

  • 正如您所见,仍然允许使用内联代码
  • 章节(可以是可选的)等同于内容 占位符
  • 布局页面而不是母版页
  • 完整视图和部分视图的概念相同
  • @functions {...}块而不是......

此外,Razor有许多有用的概念,我认为这些概念比ASPX中的更好:

  • @helper函数可以非常轻松地创建发出的函数 标记
  • @model关键字,用于指定您的视图的模型类型 用完整的类名
  • 编写<%@ Page ...指令

根据我的建议Razor是更好的选择。

答案 2 :(得分:1)

您是否阅读过ScottGu's Blog。它并没有特别关注性能,但您会对使用Razor的原因感到满意。

紧凑,富有表现力和流畅性 Razor最大限度地减少了文件中所需的字符数和击键次数,并实现了快速,流畅的编码工作流程。与大多数模板语法不同,您无需中断编码即可明确表示HTML中的服务器块。解析器非常智能,可以从代码中推断出这一点。这使得一种非常紧凑和富有表现力的语法变得干净,快速且有趣。

这个话题已经讨论了很多次。

ASP.NET MVC 3 Razor performance

ASP.NET MVC View Engine Comparison

MVC 3 ASPX VS RAZOR View Engine

答案 3 :(得分:0)

这主要取决于个人偏好,但Razor应该有很好的表现,因为它是完全编译的。此外,可维护性在我看来更好,因为更好的可读性和语法不仅是ASP.NET开发人员所熟悉的。有关完整的讨论,请查看this blog post