【问题标题】:Why use a view engine?为什么要使用视图引擎?
【发布时间】:2016-01-18 10:37:18
【问题描述】:

我目前正在分别学习 Asp mvc 和 angularjs。

似乎 Razor 视图引擎可以完成 Angular 可以渲染的大部分事情(例如为每个用户渲染一行),但让服务器进行任何处理(在这种情况下渲染)似乎是一种不好的做法。

我的问题是:为什么要使用 razor 而不是提供纯未渲染的 html?

【问题讨论】:

    标签: asp.net angularjs asp.net-mvc web-applications


    【解决方案1】:

    Razor 视图和 Angular 使用 2 种不同的技术,Razor 引擎在服务器上工作,而 Angular 在浏览器上工作。

    某些应用程序由于不同的原因使用服务器渲染,当需要服务器渲染时,Razor 引擎是在服务器端渲染 html 的众多方式之一。

    另一方面,Angular 通过控制器将 html 绑定/操作到模型,从而在客户端工作。

    为什么要使用 razor 而不是提供纯未渲染的 html?

    如果您将应用程序设计为完整的 SPA,则无需使用 Razor。您可以使用 web-api 获取数据并使用 angular 来操作视图。

    【讨论】:

    • 你能解决服务器渲染的原因吗?我认为服务器渲染很糟糕,因为客户端也可以完成工作
    • 这取决于你的应用程序,一些应用程序可以依赖 Angular 来绑定控制器和视图,而它可以依赖 mvc 框架来呈现布局、菜单系统和身份验证。
    • 你如何决定在哪里渲染什么?我假设当像谷歌这样的大型网络公司开发一个网络应用程序时,他们有关于应该在服务器上完成哪些操作以及在客户端上完成什么操作的指导方针。如果我错了,请纠正我。
    • 这取决于应用程序,如果您要使用完整的 SPA,所有渲染都发生在浏览器中,但如果您是 Razor 而不使用大量 JS,那么大部分渲染都发生在服务器中。所以这真的取决于你使用的技术堆栈,即使在像谷歌这样的大公司中,技术堆栈也不是固定的,它因产品而异。
    【解决方案2】:

    razor 引擎为开发人员快速编写代码提供了很多便利,它在纯 html 和 c# 之间提供了很好的组合(在编码和性能方面),它提供了 asp.net 众所周知的设施,如 master页面(称为布局)、会话状态和许多其他功能,它提供了许多新功能,如捆绑包、脚手架等,它提供了出色的智能感知。

    http://weblogs.asp.net/scottgu/introducing-razor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2013-05-04
      • 1970-01-01
      相关资源
      最近更新 更多