- ASP.NET WP 教程
- ASP.NET WP - 首页
- ASP.NET WP - 概述
- ASP.NET WP - 环境设置
- ASP.NET WP - 入门
- ASP.NET WP - 视图引擎
- 项目文件夹结构
- ASP.NET WP - 全局页面
- ASP.NET WP - 编程概念
- ASP.NET WP - 布局
- ASP.NET WP - 使用表单
- ASP.NET WP - 页面对象模型
- ASP.NET WP - 数据库
- ASP.NET WP - 向数据库添加数据
- ASP.NET WP - 编辑数据库数据
- ASP.NET WP - 删除数据库数据
- ASP.NET WP - WebGrid
- ASP.NET WP - 图表
- ASP.NET WP - 使用文件
- ASP.NET WP - 使用图像
- ASP.NET WP - 使用视频
- ASP.NET WP - 添加电子邮件
- ASP.NET WP - 添加搜索
- 向网站添加社交网络功能
- ASP.NET WP - 缓存
- ASP.NET WP - 安全性
- ASP.NET WP - 发布
- ASP.NET WP 有用资源
- ASP.NET WP - 快速指南
- ASP.NET WP - 有用资源
- ASP.NET WP - 讨论
ASP.NET WP - 视图引擎
ASP.NET 中的视图引擎用于将我们的视图转换为 HTML,然后将其呈现到浏览器。默认情况下,ASP.Net 支持ASPX 和Razor 视图引擎。视图引擎模板的语法与实现不同。在本章中,我们将讨论两个最重要的视图引擎,它们是:
ASPX 视图引擎,也称为 Web 窗体视图引擎,以及
Razor 视图引擎
还有许多其他第三方视图引擎,例如Spark、Nhaml 等。
ASPX 视图引擎
ASPX 或 Web 窗体引擎是 ASP.NET 的默认视图引擎,从一开始就包含在 ASP.NET MVC 中。
使用 ASPX 视图引擎编写视图的语法与 ASP.NET Web 窗体中使用的语法相同。
文件扩展名也与 ASP.NET Web 窗体相同(例如 .aspx、.ascx、.master)。
ASPX 使用“<% = %>” 或“<% : %>” 呈现服务器端内容。
Web 窗体引擎的命名空间是System.Web.Mvc.WebFormViewEngine。
ASPX 视图引擎默认情况下不会做任何事情来避免跨站点脚本攻击。
与 Razor 视图引擎相比,ASPX 视图引擎速度更快。
Razor 视图引擎
Razor 引擎是一个高级视图引擎,它是在MVC3 中引入的。它不是一种新的语言,而是一种新的标记语法。
Razor 语法基于 C# 编程语言。
Razor 语法也支持 Visual Basic 语言,并且我们使用 C# 可以做的一切,您也可以在 Visual Basic 中完成。
Razor 引擎的命名空间是System.Web.Razor。
Razor 使用“@”字符代替 ASPX 视图引擎使用的“<% %>”。
对于 C# 语言,Razor 文件扩展名为“cshtml”。
默认情况下,Razor 视图引擎在呈现到视图之前会对 html 标签或脚本进行编码,从而避免跨站点脚本攻击。
与 ASPX 视图引擎相比,Razor 视图引擎速度较慢。
语法差异
为了理解语法差异,让我们看一个用 ASPX 和 Razor 视图引擎编写的简单示例。以下是 ASPX 视图引擎的代码片段。
<%foreach (var student in Students){ %> <% if (student.IsPassed){ %> <% = student.FirstName%> is going to next grade. <% } else{ %> <% = student. FirstName %> is not going to next grade. <% } %> <% } %>
以下是使用 Razor 视图引擎编写的相同示例代码。
@foreach (var student in Students){ @if(student.IsPassed){ @student. FirstName is going to next grade. } else { @student. FirstName is not going to next grade. } }
如果您查看上面用 ASPX 和 Razor 语法编写的两个代码片段,就会很清楚地看到,与 ASPX 语法相比,Razor 语法更简洁、更简单。Razor 的一个缺点是,它不受 Dream Viewer 等可视化编辑器的支持。