【问题标题】:ASP.NET Web Pages with Razor over ASP.NET MVC Razor Views通过 ASP.NET MVC Razor 视图使用 Razor 的 ASP.NET 网页
【发布时间】:2011-10-09 07:29:51
【问题描述】:

在查看带有 ASP.NET 网页的 Razor 视图引擎的最新版本时,它看起来不错,因为它具有完整的 Razor 支持。那么有人可以给我一个理由,为什么我可能想要选择带有 Razor 视图引擎的 ASP.NET 网页而不是传统的 Web 表单,或者它在 ASP.NET MVC 中的 Razor 视图引擎伴侣?

对于每个网页,我指的是 VS 2010 SP 1 提供的这个新网站框架:http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

谢谢。

【问题讨论】:

    标签: asp.net asp.net-mvc webmatrix razor


    【解决方案1】:

    [修改为回答标题中提出的问题]

    作为一名经验丰富的开发人员,当您想快速完成某事(例如 POC),或者如果您想教别人如何开始使用 ASP.NET 时,您可能会使用网页框架。

    你在这里问了两个不同的问题:Web Forms View Engine vs Razor View Engine in MVC,以及 Web Pages Framework vs Web Forms Framework。

    正如其他人所说,第一个决定将取决于偏好。对方不做的事情也不做。这有点像 C# 或 VB 之争。

    网页框架旨在为初学者提供比 Web 表单或 MVC 更容易的“入门”。它可以被认为是更简单的经典 ASP 框架的一个迟来的替代品,并且在这方面与 PHP 竞争。如果你需要分离、可测试性等,你应该看看 MVC 框架。 Web Pages 框架在企业开发方法方面根本没有提供太多东西。习惯于 Web 表单,您不太可能从 Web Pages 获得任何东西。分离要困难得多。它不鼓励代码分层或测试。没有服务器控件或代码隐藏文件。并且网页只提供网站部署(首次运行时编译),而不是可以预编译的 Web 应用程序。

    Razor 本身是为 Web Pages 框架开发的。 MVC 喜欢它并将其用作新的视图引擎选项。但本质上,您现在可以选择三种 ASP.NET 框架:Web Pages、Web Forms 和 MVC。

    【讨论】:

    • 我不是在问两个单独的问题,而是在问 Web Pages Framework with Razor view engine vs. MVC + Razor View Engine。
    • 您的问题涉及 Web 表单。您不能将 Razor 与 Web 表单一起使用。
    • 好的,这是一个错字,但标题说明了一切。
    • 我认为这个问题说明了一切。
    • @MikeBrind 实际上,您可以以与加载 UserControl i WebForms 非常相似的方式实例化和执行 Razor 类,因此您不能在 WebForms 中使用 Razor 并不是真的。由于 Razor 类只输出纯文本,因此很容易在 WebForm 页面上插入您喜欢的任何位置stackoverflow.com/questions/8129712/…
    【解决方案2】:

    选择 Razor 的主要原因:

    • 简洁 - 页面的 HTML 结构很明显,并且没有很多 <%%> 无处不在。 (我喜欢干净的 HTML。它让我的强迫症发痒......)
    • Fluent - 服务器端代码和 HTML 之间的简单转换,无需您显式地进行上下文切换。

    【讨论】:

    • 我同意你的观点。但是现在 ASP.NET 网页(不是 Web 表单)具有 razor 语法,你会在 MVC 的实现上使用它吗?
    • 对不起,我没有意识到这是问题所在。这实际上是一个“WebForms”与“MVC”的问题,因为视图引擎只是整个方程式的一小部分。我个人偏爱 MVC,尽管这与 Razor 关系不大。
    【解决方案3】:

    razor 中的标记更具可读性。当您的产品已经使用 Web 表单视图引擎时,您可以在过渡到 razor 视图时与它并排运行 razor,这在大中型项目中可能需要大量工作。请记住,在此过渡期间,部分可能是 razor 或 Web 表单,但视图和它使用的母版页必须使用相同的引擎。

    【讨论】:

    • 感谢您提醒有关使用相同引擎的主表单和 Web 表单 - 我还没有遇到过,但我想知道...... :)
    • 是的,我同意,我是在带有 Razor 的新 ASP.NET 网页框架的上下文中询问的,其中 Web 表单具有 razor 语法......虽然显然没有代码隐藏。
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 2018-04-08
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多