aspx和razor的区别

时间:2021-02-28 14:31:44

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

两个引擎语法完全不一样,性能上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%>
@*注解*@
<%--注解--%>

(二)常用的地方

1.@转义
写法:@@
实例:shuxin556@@163.com

2.@注释
写法:@**@

3.取request
例如:@Request.Url

4.@@作用域和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>());

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

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

13.@bool类型转换
使用AsBool()方法转换
例如:
@("true".AsBool())

14.@bool类型判断
使用IsBool()方法判断
例如:
@("True".IsBool()?"是":"否")

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

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

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

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

两者区别应该仅此而已