什么是视图引擎?它到底是做什么的
本文关键字:什么 视图 引擎 | 更新日期: 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输出到你的浏览器。有许多可用的视图引擎,其中一些如下:
-
ASPX
-
剃刀
-
火花
-
NHaml
-
NDJango
-
基本
-
抄网
-
贝尔维尤
-
锋利的瓷砖
模板字符串 - 挥动着翅膀
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 标题>标题>