Naw*_*waz 47 c# asp.net asp.net-mvc viewengine
我开始学习ASP.NET MVC3.
因此,在阅读在线和书籍教程时,我经常遇到这个术语"视图引擎".我不知道它是什么.
它实际上做了什么?
为什么这对我来说很重要?
mne*_*syn 52
视图引擎负责从您的视图创建HTML.视图通常是HTML和编程语言的混合.其中大部分背后的模式称为两步视图.
例如,ASP.NET自带了自己的视图引擎.这是一个地方的意见有许多像标签<% %>和<%: %>.它使用.aspx文件扩展名.
使用ASP.NET MVC3,添加了另一个开箱即用的视图引擎Razor,它具有更吸引人的语法,例如<div>@Model.UserName</div>.
视图引擎的选择很重要,因为视图引擎的功能集是完全不同的.例如,有些人支持渲染PDF文件; 有些不能在Web上下文之外使用(对于旧的ASP.NET视图引擎也是如此),而其他人可以(例如Razor).当您想要以与构建视图相同的方式创建HTML电子邮件时,"离线"视图呈现会派上用场,而这些电子邮件应该从后台工作人员而不是Web应用程序发送.
在SO上有一个很好的asp.net视图引擎比较.
好消息是你可以在ASP.NET MVC中并行使用多个视图引擎,但除非必要,否则我不会推荐它.
Razor引擎中已经有一些非常好的扩展点了.例如,您可以提供一个自定义视图基类,这是一个强大的概念,可以在正确的位置轻松添加许多功能,而不必弄乱您必须处理的所有细节.
我现在要去剃刀.
视图引擎负责呈现您的视图,并将您的代码转换为光荣的HTML.因此,他们直接负责您需要在视图中编写代码.
基本上你需要关注两个:ASPX和Razor.在我看来,Razor更加时尚和易于使用,仅以MVC3支持为代价.
例如,ASPX中的代码块可能如下所示:
<% foreach(var item in Model) { %>
<tr>
<td><%: item.Name %></td>
</tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)
而Razor等价物将如下所示:
@foreach(var item in Model) {
<tr>
<td>@item.Name</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49125 次 |
| 最近记录: |