什么是视图引擎?它到底是做什么的

本文关键字:什么 视图 引擎 | 更新日期: 2023-09-27 18:15:58

我开始学习ASP。净MVC3。

所以,当我在网上和书本上阅读教程时,我经常遇到这个术语"视图引擎"。我不知道那是什么。

它实际做什么?

这对我有什么关系?

什么是视图引擎?它到底是做什么的

视图引擎负责从视图创建HTML。视图通常是HTML和编程语言的某种混合。其中大多数背后的模式被称为两步视图。

例如,ASP。NET自带了开箱即用的视图引擎。这是一个视图有很多标签,如<% %><%: %>。文件扩展名为.aspx

与ASP。NET MVC3中添加了另一个开箱即用的视图引擎Razor,它具有更吸引人的语法,例如<div>@Model.UserName</div>

视图引擎的选择很重要,因为视图引擎的特性集是非常不同的。例如,有些支持渲染为PDF文件;有些不能在web上下文之外使用(对于旧的ASP。. NET视图引擎),而其他人可以(例如Razor)。当你想要像创建视图一样创建HTML电子邮件时,视图的"离线"渲染会派上用场,这些电子邮件应该从后台工作人员而不是web应用程序发送。

这里有一个很好的asp.net视图引擎的比较。

好消息是,您可以在ASP中并行使用多个视图引擎。. NET MVC,虽然我不推荐它,除非必要。

在Razor引擎中已经有一些非常好的扩展点。例如,你可以提供一个自定义的视图基类,这是一个强大的概念,可以很容易地在正确的地方添加很多功能,而不必弄乱你必须处理的所有粗糙的细节。

我现在喜欢Razor。

视图引擎负责呈现您的视图,并将您的代码转换为漂亮的HTML。因此,它们直接负责如何在视图中编写代码。

基本上有两个你需要关心:ASPX和Razor。在我看来,Razor更流畅,更容易使用,但代价是它只支持MVC3。

例如,ASPX中的代码块可能是这样的:

<% foreach(var item in Model) { %>
    <tr>
        <td><%: item.Name %></td>
    </tr>
<% } %>

而Razor的等效代码是这样的:

@foreach(var item in Model) {
    <tr>
        <td>@item.Name</td>
    </tr>
}

在MVC中,视图引擎是一个工作在你的视图和浏览器之间,通过编译你的视图内的代码提供有效的HTML输出到你的浏览器。有许多可用的视图引擎,其中一些如下:

  1. ASPX

  2. 剃刀

  3. 火花

  4. NHaml

  5. NDJango

  6. 基本

  7. 抄网

  8. 贝尔维尤

  9. 锋利的瓷砖

  10. 模板字符串
  11. 挥动着翅膀
  12. SharpDOM

目前大多数开发人员更喜欢使用Razor视图引擎,因为它提供了非常方便的编程方式。所有这些视图引擎可能都不支持ASP。净MVC。

欲了解更多详情,请访问本文。

视图引擎是MVC用来查找和呈现你从控制器请求的视图的。如果你对默认路由很满意,你可能不需要改变任何东西,但是假设你想让你的共享文件通常位于根/views/shared,而不是位于根/common,你需要创建一个自定义视图引擎来做到这一点。

在这里你可以看到如何构建一个视图引擎:

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

视图引擎也负责呈现视图,但由于您刚刚学习MVC,您可能还不需要更改呈现功能

模板/视图引擎使您能够在应用程序中使用静态模板文件。在运行时,模板引擎将模板文件中的变量替换为实际值,并将模板转换为发送给客户端的HTML文件。这种方法使设计HTML页面变得更加容易。

View Engine在应用程序内部工作,用于向浏览器或用户呈现HTML页面。它可以包含HTML标签,服务器控件和一些编程语言。

Razor是MVC4框架的首选视图引擎。

. Net MVC中,视图引擎工作于视图和浏览器之间,通过考虑视图提供的输出,为浏览器提供有效的HTML输出。有许多类型的视图引擎。

1) ASPX

2)剃须刀

3)火花

4) NHaml

5) NDJango

6)基本

7)抄网

我在http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/上看到了一篇描述性的文章

视图引擎提供了将HTML从视图呈现给浏览器的能力。

ASP支持许多视图引擎。但最广泛使用的视图引擎是

  • Web表单/ASPX视图引擎
  • Razor视图引擎。

Web表单视图引擎/ASPX视图引擎:

  • Web表单视图引擎/ASPX视图引擎是默认的视图引擎用于Asp.net MVC项目。它可以从MVC 1.0
  • 中获得Web表单引擎的命名空间是Web. mvc . webformviewengine
  • 这个视图引擎的文件扩展名类似于Web表单:

。aspx,用于视图,就像Web表单页面。.ascx,用于局部视图&编辑器模板就像用户控件。. Master,用于布局和母版页,就像Web表单中的母版页一样。

  • 不支持TDD(测试驱动开发)
  • Web表单引擎不阻止XSS攻击意味着任何脚本保存将在渲染页面
  • 时触发
  • 语法:<%: Html。ActionLink(" Home ", " Index ") %>

Razor View Engine:

    Razor视图引擎是一个高级的视图引擎,可与MVC一起使用3.0及以上版本
  • ASPX视图引擎的命名空间为Web.Razor.
  • 这个视图引擎的文件扩展名是。cshtml (Razor c#),部分视图,编辑器模板和布局页面VB.NET),用于视图,部分视图,编辑器模板和布局页面。
  • 支持测试驱动开发。
  • Razor Engine与Web form Engine相比速度稍慢。
  • Razor Engine防止XSS攻击(跨站脚本攻击)的手段它在呈现给视图之前对脚本或html标签进行编码,如<,>。
  • Razor语法容易理解,比Web Form干净得多语法。Razor使用@符号使代码如下:

    @Html。ActionLink("家"、"指数")

视图引擎将视图呈现为HTML形式。如果我们谈论。net框架中的MVC应用,它支持以下两种视图引擎:

1。Razor视图引擎 2。Web表单/ASPX视图引擎

差异: 1。 Razor视图引擎使用布局,而ASPX视图引擎使用母版页。

2。 Razor视图引擎使用部分页面,而ASPX视图引擎使用Web用户控制。

3。 Razor视图引擎不是一种语言,它是标记语法。

4。 @ '符号在Razor引擎中用于编写代码。@Html。ActionLink("登录"、"LoginView")' <%: '分隔符用作起点,' %> '用作结束点。你可以在ASPX引擎中编写它们之间的代码。

5。 Razor视图引擎有。cshtml(与c#)和。vbhtml(与VB)扩展视图,布局和部分视图。ASPX视图引擎有一个类似于简单web应用程序的扩展名,比如。ASPX表示视图,。acsx表示用户控件,。Master表示母版页。

到目前为止,每个响应都与ASP.NET有关。如果你正在为nodejs寻找一个视图引擎,那么以下是一些选项:

Jade (Pug)
express-handlebars
ejs
React

我在https://github.com/expressjs/express/wiki#template-engines上找到了一个完整的列表,但上面的似乎是我听到最多的。

两个视图引擎:

<标题> ASPX h1> SPX视图引擎,服务器端脚本被封装在[% %]. aspx是它的扩展名。 <标题>剃刀h1> 须刀我们用@。在HTML和代码之间切换是可能的。Razor视图扩展。cshtml和。vbhtml
相关文章: