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 %>.

最新文章

  1. Json数据处理
  2. Eclipse PHP Studio(EPP)
  3. html,body { margin:0; padding:0;border:0}
  4. django动态表格总结
  5. CentOS 6.5 下安装 Elasticsearch 5
  6. u163是什么故障 佳能MX328 u163是什么意思?墨水打完了,我加了墨水后还是显示U163(请检查墨水-彩色)警告灯亮
  7. iframe 中嵌套刷新
  8. UUID Gen
  9. Bug(案例)图片的垂直出现隐藏
  10. windows phone 8.1常用启动器实例
  11. 前端学PHP之Session
  12. BZOJ2431_逆序对数列_KEY
  13. 初识 SpringMVC
  14. Python系列 - 进程和线程
  15. Selective Kernel Network
  16. 黑盒测试实践——day04
  17. LeetCode 171 Excel Sheet Column Number 解题报告
  18. 微信小程序之点击列表的item带参数跳转界面
  19. aop原理及理解
  20. HTML5 学习01——浏览器问题、新元素

热门文章

  1. GridView 相同单元格合并
  2. 整理开源协议问题 GPL APACHE
  3. 箭头函数中的 this
  4. Java8 lam。。。表达式
  5. PHP安全之register_globals (转)
  6. grep和egrep正则表达式
  7. Mac 下安装python3.7 + pip 利用 chrome + chromedriver + selenium 自动打开网页并自动点击访问指定页面
  8. phper必知必会(一)
  9. TFS 2012如何切换用户
  10. 峰Spring4学习(3)注入参数的几种类型