aspx和razor的区别

两者几乎都不懂,现在要选择一种,只能百度,然后一条一条看,也不知道诸位大神哪个说的对。

两个引擎语法完全不一样,性能上Asp.Net略占优势,语法糖则是razor的强项。

开发MVC3首选razor
Razor 是主流。。语法不一样
Razor 简洁
@{} and <% %>  

cshtml 使用 razor rendering engine

aspx 使用 webform engine

语法不同

这两个文件里插入asp标签的方式不一样,前者比后者简单明了。如果用前一种方式开发,不再可以拖拽各种服务器段控件了。别的就不知道了,我的web开发经验极少,就知道怎么多,前一种方式是微软推荐的方式

Razor与Aspx的区别

Razor


Aspx

@{     int a = 123;     string b = "demoshop";  }
<%     int a = 123;     string b = "demoshop";
%>
<div>     @Model.Content
</div>
<div>     <%:Model.Content %>
</div>
<div>     @Html.Raw(Model.Content)
</div>
<%foreach (var item in collection)     {%>         <span><%:item.Key %></span>
<%} %>
@foreach (var item in collection)
{     @:我是純文字 @item.Value
}
<%foreach (var item in collection)     {%>         我是純文字 <%:item.Key %>
<%} %>
@for (int i = 0; i < 3; i++)
{     @:目前是第 @i.  }
<%for (int i = 0; i < 3; i++)   {%>       目前是第<%=i %>.
<%} %>
@(Model.Content == "" ? "沒貨" : Model.Content)
<%:Model.Content==""?"沒貨": Model.Content%>
@*注解*@
<%--注解--%>

(二)常用的地方

[email protected]转义
写法:@@
实例:[email protected]@163.com

[email protected]注释
写法:@**@

3.取request
例如:@Request.Url

[email protected]@作用域和Html混合使用
作用域使用{}描述,在作用域内可以直接输出html.
例如:@{
            //定义变量i
            int i = 1;
            <em>12</em>
            <br />
        }

5.在@作用域中输出内容
写法:@:
例如:
         @{
            int j = 1;
            @:div中直接输出内容<br />
            @:<br />
            <div>@j=6</div>
            @j
            <br />
        }

6.在@作用域中输出HTML方法1
使用字符串描述输出
例如:
@{
            string html = "<b>wo shi html</b>";
            @html

7.在@作用域中输出HTML方法2
使用HtmlHelper输出
例如:
@{
   @Html.Raw(html)

8.在@作用域中输出HTML方法3
使用HtmlString类输出
例如:
@{
var html2 = new HtmlString("<b>wo shi html</b>");
            @html2

9.在@作用域中输出HTML方法4
使用MvcHtmlString类输出
例如:
@{
var html3 = MvcHtmlString.Create("<b>wo shi html</b>");
            @html3

10.处理泛型<>冲突问题
我们可以使用()把语句括起来
例如:
@(list.ToList<Char>());

[email protected]数据类型转换
使用AsDecimal()方法转换
例如:
@("123".AsDecimal()+1)

[email protected]数字类型判断
使用IsInt()方法
例如:
@("123".IsInt()?"是":"否");

[email protected]类型转换
使用AsBool()方法转换
例如:
@("true".AsBool())

[email protected]类型判断
使用IsBool()方法判断
例如:
@("True".IsBool()?"是":"否")

15.日期类型转换
使用AsDateTime()方法转换
例如:
@("2011/4/11".AsDateTime().ToLongDateString())

16.路径转换
使用Href()方法转换
例如:
@Href("~/")

看到这里,我觉得如果不是适用范围aspx比较大的话,那还是razor语法更简洁,决定使用razor

前者应该是后者的更新,我在Mybatis中也见过类似更新

两者区别应该仅此而已

时间: 2024-12-05 22:27:32

aspx和razor的区别的相关文章

ASPX和Razor

ASPX ASPX文件是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面,是微软推出的一种新的网络编程方法,而不是ASP的简单升级,因为它的编程方法和ASP有很大的不同,他是在服务器端靠服务器编译执行的程序代码,ASP 使用脚本语言,每次请求的时候,服务器调用脚本解析引擎来解析执行其中的程序代码,而ASP.NET则可以使用多种语言编写,而且是全编译执行的,比ASP 快,而且,不仅仅是快的问题,有很多优点..asp是asp的文件后缀名,.aspx是asp.net的文件后缀名

Razor内幕之解析

ASPX语法比较简单,所以ASPX解析器几乎完全是通过正则表达式来实现的.Razor解析器与ASPX解析器之间有很大不同,它实际上分为三个独立的组件: 1)理解基础HTML语法的标记解析器: 2)理解基础C#或者VB语法的代码解析器: 3)理解标记和代码如何混合的中央控制器 所以Razor解析器有三个参与者:代码解析器,标记解析器,代码解析器.三个组件相互配合,协同工作完成对Razor文档的解析.Razor解析器有三种状态,分别是:解析标记文档.解析标记块,解析代码块,任何情况下解析器都处在以上

Razor和HtmlHelper的使用意义

Razor和HtmlHelper的使用意义 写这篇文档的目的是为了给初学MVC的同伴们介绍在MVC的View中的两个新概念,能有利于我们更快,更好的开发项目.一个是视图引擎,一个是HtmlHlper.这两个知识都不是新的,知识概念新而已,都是在我们学过的ASPX和 Html上做了改进,是我们编程更加容易. 一.区别ASPX和Razor 在ASP.NET MVC模式中,我们的视图引擎选择有两种:ASPX(ASP.NET),Razor. 1.ASP.net. 如果选择ASPX,那么选择的引擎其实就是

ASP.NET的另一个视图引擎——Razor

 一.什么是Razor? 要是你知道什么是ASPX,那我就告诉你:Razor是和ASPX 一样的另一种视图引擎.说到视图就明白了很多吧.既然都为视图引擎,都是MS的东西,两个视图引擎,一前一后,肯定有区别.那么接下来让我们来认识一下Razor吧. 首先,Razor是作为一种后起的视图模板被ASP.NET MVC3使用. 这就暴露了Razor的一个重要信息:界面设计灵活,比aspx视图引擎更专注于WEB前端页面的设计.因为MVC就是基于WEB开发所诞生的一个设计模式,主旨之一就是将页面和业务逻辑解

Razor视图中的@:和语法

原创changuncle 最后发布于2016-12-07 17:43:50 阅读数 4456  收藏 展开 在MVC项目中新建视图的时候默认支持ASPX引擎和Razor引擎,如果选择ASPX引擎,那它跟webform项目中的*.aspx前台页面没区别,如果选择Razor引擎,那我们可以用更少的代码来实现相同的功能(与使用ASPX引擎相比较),我们不用在HTML中明确地标记出服务模块的结束标志,因为Razor解析器足够聪明,它可以自己推断出来. HTML代码与C#代码混编 1.在前台声明和使用C#

mvc 4 razor语法

mvc 4 razor语法讲解和使用 1.这里的  @{Layout="文件路径";}  代码块指定了整个项目默认所使用的布局文件(如图:) @RenderBody()对于所有的页面默认的情况下都会使用这个布局(WebForm的模板) @RenderBody()相当于一个占位符其他页面的所有内容都会被引擎渲染在这个地方. @RenderSecion()这个占位符表示:在这里会渲染页面里面的一个节(可以是html代码也可以是c#代码和Html的结合体). @RenderSection(&

MVC4相关Razor语法以及Form表单(转载)

Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: [csharp] view plaincopy @{ Layout = "~/Views/Shared/_Layout.cshtml";} 这里的  @{Layout="文件路径";}  代码块指定了整个项目默认所使用的布局文件(如图:) 左边蓝色部分显示了MVC4提供的默认的布局文件,我们看看_Layout.cshtml里面的内容: 不难看出,

__declspec,__cdecl,__stdcall区别和作用

_cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的 顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外, 像printf这样接受可变个数参数的函数只有用cdecl才能够实现.      __declspec主要是用于说明DLL的引出函数的,在某些情况下用__declspec(dllexport)在DLL中生命引出函数,比用传统的 DEF文件方便一些.在普通

MVC4相关Razor语法以及Form表单

Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: [csharp] view plain copy @{ Layout = "~/Views/Shared/_Layout.cshtml";} 这里的  @{Layout="文件路径";}  代码块指定了整个项目默认所使用的布局文件(如图:) 左边蓝色部分显示了MVC4提供的默认的布局文件,我们看看_Layout.cshtml里面的内容: 不难看出