ASPX
优点:
        通过上面小小的对比,不难看出,与ASP.NET MVC紧密集成,对于以往ASP.NET开发人员有更好体验。其实它还有其他几优点:
        ●智能感应 
        ●能选择其它语言的 CodeDom provider (例如: C#, VB.NET, F#, Boo, Nemerle) 
        ●立即编译或预编译的views
缺点:
        当然也有缺点了:
        ●在Asp.net MVC中容易与经典的Asp.net模式混淆起来,并且Asp.net MVC已不再支持它们。 (例如: ViewState PostBack) 
        ●智能感应强迫样式总是不在内联的代码块。 
        ●设计简单模板时会凌乱。
 
 
Razor
优点:
        ●结构紧凑,表达式流畅 
        ●易于学习 
        ●具有很好的智能感知 
        ●可以单元测试 
缺点:
        ●创建一个稍微轻量级的“标签团”问题。服务器端标签实际上提供了围绕服务器的结构代码和非服务器端代码,Razor混淆HTML和服务器端代码,纯HTML和JS的开发具有挑战性。 
        ●语法是面向HTML生成非HTML的内容可能会非常棘手。尽管这样,Razor的数据模型实际上只是字符串串联,语法和嵌套错误,既不是静态或动态检测,虽然VS.NET设计时帮助减轻这个有确点。可维护性和可重构性也受限于此。
 
总之:
        如果习惯了在WebForm中,在前台写代码,那么aspx引擎更熟悉。Razor引擎简化了输入,直接@就可以开始写代码了,显得更简洁。推荐Razor,语法更人性化。
 
语法代码示例,简单对比这两者区别
 

语法名称

Razor 语法

Aspx 等效语法

代码块(服务端)

@{ int x = 123; string y = "test."; }

<% int x = 123; string y = "test."; %>

表达式

encode:<p>@model.Message</p>

no encode:<p> @Html.Raw(model.Message)</p>

encode:<p><%:model.Message %></p>

no encode:<p><%= model.Message %></p>

结合文本和标记的循环

@foreach(var item in items)

{

<p>@item.Prop</p>

}

<% foreach(var item in items)

{ %>

<p><%:item.Prop %></p>

<% } %>

代码和文本混合

@if (foo) { <text>Plain Text</text> }

@if (foo) { @:Plain Text is @bar }

<% if (foo) { %> Plain Text <% } %>

服务器端注释

@* This is a server side multiline comment  *@

<%-- This is a server side multiline comment --%>

调用一个方法

@(MyClass.MyMethod<AType>())

使用括号来明确表达是什么.

混合表达式和文本

Hello @title. @name.

Hello <%: title %>. <%: name %>.

.NET MVC 两种视图引擎(Razor、Aspx)的更多相关文章

  1. (转)Asp.Net Mvc视图引擎Razor介绍

    Asp.Net Mvc视图引擎Razor介绍 1.Razor介绍 程序园原创,转载请注明:http://www.kwstu.com/ArticleView/dabaomvc_2014082408205 ...

  2. MySQL两种存储引擎: MyISAM和InnoDB

    MySQL两种存储引擎: MyISAM和InnoDB 简单总结   MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Me ...

  3. mysql 有两种数据库引擎发音

    mysql 有两种数据库引擎 一种是 MyISAM,一种是 InnoDB MyISAM 发音为 "my-z[ei]m"; InnoDB 发音为 "in-no-db&quo ...

  4. Mysql的两种存储引擎以及区别

    一.Mysql的两种存储引擎 1.MyISAM: ①不支持事务,但是整个操作是原子性的(事务具备四种特性:原子性.一致性.隔离性.持久性) ②不支持外键,支持表锁,每次所住的是整张表     MyIS ...

  5. MySQL - 两种存储引擎 (MyISAM PK InnoDB) + MVCC

    总结 1.两种存储引擎各有各的有点,MyISAM专注性能,InnoDB专注事务.两者最大的区别就是InnoDB支持事务,和行锁. 2.InnoDB采用MVCC(Multi-Version Concur ...

  6. Asp.Net Mvc视图引擎Razor介绍

    1.Razor介绍 1)ASP.NET MVC3 带来了一种新的名为Razor 的视图引擎,提供了下列优点: Razor 的语法简单且清晰,只需要最小化的输入 Razor 容易学习,语法类似于 C#  ...

  7. mvc 控制器,视图,Razor 语法

    mvc 控制器controller:响应用户请求,并修改模型model;输入数据的处理,输出view数据的提供: url入控制器的方法有关联:MVC提供的是方法调用结果: mvc model:是对应用 ...

  8. ASP.NET MVC扩展自定义视图引擎支持多模板&动态换肤skins机制

    ASP.NET mvc的razor视图引擎是一个非常好的.NET MVC框架内置的视图引擎.一般情况我们使用.NET MVC框架为我们提供的这个Razor视图引擎就足够了.但是有时我们想在我们的项目支 ...

  9. ASP.NET MVC 扩展自定义视图引擎支持多模板&动态换肤skins机制

    ASP.NET  mvc的razor视图引擎是一个非常好的.NET  MVC 框架内置的视图引擎.一般情况我们使用.NET MVC框架为我们提供的这个Razor视图引擎就足够了.但是有时我们想在我们的 ...

随机推荐

  1. WINDOWS FTP命令详解

    FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令.熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之 ...

  2. AIX6.1用g++安装Poco-1.6.1-all

    项目终于到了把程序往小型机上部署的阶段了.不得不说AIX真是让人恶心,一个Poco编译弄了我1周时间.网上根本没有相关的资料. 1. AIX下安装gcc/g++:在ftp://ftp.software ...

  3. 用SqlConnectionStringBuilder修改连接超时时间

    连接是通过参数传入,欲修改超时时间. SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(connStr); scsb.C ...

  4. 在word中输入任意角度旋转图片

    Sub 图片旋转任意角度() Dim sha As Shape, isa As InlineShape Static s As Integer Application.ScreenUpdating = ...

  5. windows git 清除已保存的密码

    进入git目录 右键 git-bash.exe 执行命令: git config --system --unset credential.helper 然后执行git clone http://... ...

  6. Jmeter 问题集

    1.配置分布式,调度机(master) 看不到 执行机(slave). 原因: slave是放在一个交换机下面,然后在这个交换机下面又接了个路由器,control连的这个路由器 解决: CONTROL ...

  7. 杂项:.NET Framework

    ylbtech-杂项:.NET Framework Microsoft .NET Framework是用于Windows的新托管代码编程模型.它将强大的功能与新技术结合起来,用于构建具有视觉上引人注目 ...

  8. 全局 SqlConnection

    class SqlHelper { public static SqlConnection conn; public static SqlConnection Open(string connStr) ...

  9. C# 窗体控件输入框大写

    // 将 a-z 改为 A-Z // 'a' 'z' && e.KeyChar <= ) e.KeyChar = ();

  10. Linux 期中架构 MySQL

     MySQL基础部分 mysql安装脚本 安装前请将相关安装包copy放到/server/tools目录下 -rw-r--r-- 1 root root 314149697 Mar 23  2017 ...