代码之家  ›  专栏  ›  技术社区  ›  Nicholas Murray

ASP.NET MVC Razor视图引擎

  •  41
  • Nicholas Murray  · 技术社区  · 15 年前

    Scott Guthrie Razor question 比较可用的视图引擎。

    6 回复  |  直到 8 年前
        1
  •  22
  •   queen3    15 年前

    除了标记语言,还有更多的内容可以查看引擎。我将错过的几个Spark功能:

    • 自定义标记(写入要使用的\u Tag.spark<标签/>);
    • 自动生成的变量,如varIsFirst、varIndex等;
    • 您仍然可以使用WebForms标记-非常适合兼容性和增量升级;
    • 支持在彼此内部同时使用“”和“”引号(非常有用)。

    我更喜欢循环/ifs的Spark语法-混合HTML<&燃气轮机;C#{}牙套看起来不太好看,但这纯粹是个人意见。

    Razor中也有非常有前途的特性,例如内联模板。考虑到Spark creator是微软雇佣的,我认为Razor有希望写得好,非常有用,并且支持良好的视图引擎。当然,我不会用Razor重写数百个Spark视图(尽管我确实用Spark重写了几十个WebForms视图)。但我肯定会认真看看剃须刀-我只是从你的问题,谢谢-我现在看到的看起来很有希望。当然,它不会与WebForms竞争(任何视图引擎都比WebForms好),但是如果您还没有在另一个视图引擎上投入过多的资金,它看起来是一个新的ASP.netmvc项目的好选择。

        2
  •  23
  •   Darin Dimitrov    15 年前

    单元可测试:新视图引擎 实施将支持 需要控制器或web服务器, 并且可以托管在任何单元测试中 项目无特殊应用程序域 必需)。

    最后!!!真不敢相信,微软花了将近8年的时间终于推出了一款支持这一功能的视图引擎。

        3
  •  15
  •   Peter Mortensen icecrime    14 年前

    对我来说,有三个令人信服的理由:

    1. 汇编 -Razor视图可以编译成DLL。最后,我们在.NETWeb项目中获得了适当的可重用性。我可以拥有一个业务对象,它知道如何显示自己,而不必在web项目的某些部分将代码作为.ascx文件浮动。

    2. -当它被编译成一个类时,我可以编写一个单元测试并向它抛出对象的模拟实例,以查看HTML是否正确。

    3. 智能感知 很好,但不是最重要的部分。

        4
  •  4
  •   tvanfosson    13 年前

    更新:

        5
  •  0
  •   Turnkey    15 年前

        6
  •  0
  •   Peter Mortensen icecrime    14 年前

    剃须刀使用支架,即 foreach 什么东西。 Spark在这里使用XML标记。

    也许这不是什么大事,但显示了一致性和可扩展性。